我們在進行模型訓練時,不可避免的會遇到某些特徵出現空值的情況,下面整理了幾種填充空值的方法
對於特徵值缺失的一種常見的方法就是可以用固定值來填充,例如0,9999, -9999, 例如下面對灰度分這個特徵缺失值全部填充為-99
data[
'灰度分'
]= data[
'灰度分'
].fillna(
'-99'
)
對於數值型的特徵,其缺失值也可以用未缺失資料的均值填充,下面對灰度分這個特徵缺失值進行均值填充
data[
'灰度分'
]= data[
'灰度分'
].fillna(data[
'灰度分'
].mean())
)
與均值類似,可以用未缺失資料的眾數來填充缺失值
data[
'灰度分'
]= data[
'灰度分'
].fillna(data[
'灰度分'
].mode())
)
用前乙個資料進行填充
data[
'灰度分'
]= data[
'灰度分'
].fillna(method=
'pad'
)
用後乙個資料進行填充
data[
'灰度分'
]= data[
'灰度分'
].fillna(method=
'bfill'
)
data[
'灰度分'
]= data[
'灰度分'
].interpolate(
)
from fancyimpute import biscaler, knn, nuclearnormminimization, softimpute
dataset = knn(k=3)
.complete(dataset)
from sklearn.ensemble import randomforestregressor
zero_columns_2 =
['機構查詢數量'
,'直接聯絡人數量'
,'直接聯絡人在黑名單數量'
,'間接聯絡人在黑名單數量'
,'引起黑名單的直接聯絡人數量'
,'引起黑名單的直接聯絡人佔比'
]#將出現空值的除了**的列全部取出來,不用於訓練
dataset_list2 =
[x for x in dataset if x not
in zero_columns_2]
dataset_2 = dataset[dataset_list2]
# 取出灰度分不為空的全部樣本進行訓練
know = dataset_2[dataset_2[
'灰度分'
].notnull()]
print
(know.shape)
#26417, 54
# 取出灰度分為空的樣本用於填充空值
unknow = dataset_2[dataset_2[
'灰度分'
].isnull()]
print
(unknow.shape)
#2078, 54
y =[
'灰度分'
]x =[1
]know_x2 = know.copy(
)know_y2 = know.copy(
)print
(know_y2.shape)
#know_x2.drop(know_x2.columns[x]
, axis=
1, inplace=
true
)print
(know_y2.shape)
print
(know_x2.shape)
#know_y2 = know[y]
# randomforestregressor
rfr = randomforestregressor(random_state=
666, n_estimators=
2000
, n_jobs=-1
)rfr.fit(know_x2, know_y2)
# 填充為空的樣本
unknow_x2 = unknow.copy(
)unknow_x2.drop(unknow_x2.columns[x]
, axis=
1, inplace=
true
)print
(unknow_x2.shape)
#(2078, 53)
unknow_y2 = rfr.predict(unknow_x2)
unknow_y2 = pd.dataframe(unknow_y2, columns=
['灰度分'
])
python缺失值填充
對於特徵值缺失的一種常見的方法就是可以用固定值來填充。data 分數 data 分數 fillna 1 對於數值型的特徵,其缺失值也可以用未缺失資料的均值填充。data 分數 data 分數 fillna data 分數 mean 與均值類似,可以用未缺失資料的眾數來填充缺失值。data 分數 da...
pandas 填充缺失值
當資料中存在nan缺失值時,我們可以用其他數值替代nan,主要用到了dataframe.fillna 方法,下面我們來看看具體的用法 1.先來建立乙個帶有缺失值的dataframe 2.使用0替代缺失值 當然你可以用任意乙個數字代替nan df.fillna 0 3.用乙個字串代替缺失值 df.fi...
python DataFrame缺失值填充2
在做具體的分析工作的時候,訓練集中往往既存在分類變數又存在連續變數,且因各種各樣的原因,資料中存在大量的缺失,給後期的建模工作帶來麻煩,現在把自己打磨好的缺失值補充函式總結在此,為後續的使用提供方便。用均值填充其連續型的缺失值,用眾數填充分類變數的缺失值 defdatadealnan df data...