機器學習中的資料缺失

2021-09-02 08:02:23 字數 2237 閱讀 3863

刪除含缺失資料的特徵

dropna() 丟棄缺失值

dropna(

)#一行全為nam的才丟棄,預設how='any'

dropna(how=

'all'

)#一行至少有n個非空值就保留

dropna(thresh=n)

#一行有nan就丟棄,預設為axi=0

dropna(axis=

1)

均值插補
fmedian =

['缺失列名字1'

].median(

)#中位數

fmean =

['缺失列名字2'

].mean(

)#平均值

fillna(

)

熱卡填補

對於乙個包含空值的物件,熱卡填充法在完整資料中找到乙個與它最相似的物件,然後用這個相似物件的值來進行填充。不同的問題可能會選用不同的標準來對相似進行判定。該方法概念上很簡單,且利用了資料間的關係來進行空值估計。這個方法的缺點在於難以定義相似標準,主觀因素較多。(網上看到的,具體怎麼操作也沒例子。。。)

k均值就是用knn**一下缺失的資料

knn = kneighborsclassifier(

)knn.fit(x_train, y_train)

#完整的特徵項,完整的特徵值

y_predict = knn.predict(x_test)

#缺失的特徵項

回歸

建立回歸方程。對於包含空值的物件,將已知屬性值代入方程來估計未知屬性值,以此估計值來進行填充。當變數不是線性相關時會導致有偏差的估計。

極大似然估計

用概率密度函式引數去擬合取樣的結果

多重插補

r實現的多重插補

#多重插補法處理缺失,結果轉存

library(lattice)

#調入函式包

library(mass)

library(nnet)

library(mice)

#前三個包是mice的基礎

imp=mice(inputfile,m=4)

#4重插補,即生成4個無缺失資料集

fit=

with

(imp,lm(sales~date,data=inputfile)

)#選擇插補模型

pooled=pool(fit)

summary(pooled)

result4=complete(imp,action=3)

#選擇第三個插補資料集作為結果

隨機森林

包含多個決策樹的分類器, 並且其輸出的類別是由個別樹輸出的類別的眾數而定

class

sklearn

.ensemble.randomforestclassifier(n_estimators=

10, criterion=

'gini'

, max_depth=

none

, min_samples_split=

2, min_samples_leaf=

1, min_weight_fraction_leaf=

0.0, max_features=』auto』, max_leaf_nodes=

none

, min_impurity_decrease=

0.0, min_impurity_split=

none

, bootstrap=

true

, oob_score=

false

, n_jobs=

1, random_state=

none

, verbose=

0, warm_start=

false

, class_weight=

none

)

關於調參已經很詳細了,不必再贅述

將缺失與否設定為乙個新的特徵(假設為y2),當原特徵y1無缺失時y2=0,反之y2=1

略。。。

機器學習中缺失值的處理

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

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

dropna scikit learn的imputer類提供了估算缺失值的基本策略,可以使用缺失值所在的行或列的均值,中位數或最頻繁值。這個類還允許不同的缺失值編碼。import numpy as np from sklearn.preprocessing import imputer imp im...

機器學習缺失值處理方法

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