機器學習中樣本缺失值的處理方法

2021-08-20 04:16:06 字數 1507 閱讀 8997

dropna()

scikit-learn的imputer類提供了估算缺失值的基本策略,可以使用缺失值所在的行或列的均值,中位數或最頻繁值。這個類還允許不同的缺失值編碼。

>>> import numpy as np

>>> from sklearn.preprocessing import imputer

>>> imp = imputer(missing_values='nan', strategy='mean', axis=0)

>>> imp.fit([[1, 2], [np.nan, 3], [7, 6]])

imputer(axis=0, copy=true, missing_values='nan', strategy='mean', verbose=0)

>>> x = [[np.nan, 2], [6, np.nan], [7, 6]]

>>> print(imp.transform(x))

[[ 4. 2. ]

[ 6. 3.666...]

[ 7. 6. ]]

fillna()

lb = 'education'

idx = 0

tr = np.where(df_all[lb] != -1)[0]

va = np.where(df_all[lb] == -1)[0]

df_all.iloc[va, idx] = logisticregression(c=1).fit(x_all[tr],

df_all.iloc[tr, idx]).predict(x_all[va])

lb = 'age'

idx = 2

tr = np.where(df_all[lb] != -1)[0]

va = np.where(df_all[lb] == -1)[0]

df_all.iloc[va, idx] = logisticregression(c=2).fit(x_all[tr],

df_all.iloc[tr, idx]).predict(x_all[va])

lb = 'gender'

idx = 3

tr = np.where(df_all[lb] != -1)[0]

va = np.where(df_all[lb] == -1)[0]

df_all.iloc[va, idx] = logisticregression(c=2).fit(x_all[tr],

df_all.iloc[tr, idx]).predict(x_all[va])

df_all = pd.concat([df_all, df_te]).fillna(0)

df_all.to_csv(cfg.data_path + 'all_v2.csv', index=none

機器學習缺失值處理方法

機器學習中的模型訓練只是其中的乙個步驟,有好的的資料才能得到好的模型。但是在現實情況下,資料往往是存在一些缺失值的,怎麼取處理這些缺失值,使資料表現更完美也是乙個特別重要的步驟。缺失值是指粗糙資料中由於缺少資訊而造成的資料的聚類 分組 刪失或截斷。它指的是現有資料集中某個或某些屬性的值是不完全的。缺...

機器學習中缺失值的處理

做比賽過程中經常會有大量有缺失值的項,這時怎麼處理缺失值很關鍵了。平均值填充 mean mode completer 將初始資料集中的屬性分為數值屬性和非數值屬性來分別進行處理。如果空值是數值型的,就根據該屬性在其他所有物件的取值的平均值來填充該缺失的屬性值 如果空值是非數值型的,就根據統計學中的眾...

機器學習缺失值處理方法彙總

1.用平均值 中值 分位數 眾數 隨機值等替代。效果一般,因為等於人為增加了雜訊。2.用其他變數做 模型來算出缺失變數。效果比方法1略好。有乙個根本缺陷,如果其他變數和缺失變數無關,則 的結果無意義。如果 結果相當準確,則又說明這個變數是沒必要加入建模的。一般情況下,介於兩者之間。缺失值處理方法綜述...