国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

這篇具有很好參考價值的文章主要介紹了【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


本文鏈接:https://blog.csdn.net/weixin_47058355/article/details/128866686

數(shù)據(jù)挖掘系列:
缺失值處理方法匯總
離散化方法匯總
離群點(異常值)處理方法匯總
標準化(數(shù)據(jù)歸一化)處理方法匯總
特征選擇(特征篩選)方法匯總
特征選擇篩選(降維)方法匯總
分類預測方法匯總

前言

看了下網(wǎng)絡上做完整的數(shù)據(jù)清洗方法總結的人不多,這幾年剛好學的各類方法都有點雜亂,因此自己做個總結,算是方便自己,也幫助別人,也希望大家看到錯誤,能在評論區(qū)或者私信說一下,互相探討學習一下。

一、查看缺失值比例

常見的查看缺失值方法,第一種計算缺失值比例

queshi_bili=((data_train.isnull().sum())/data_train.shape[0]).sort_values(ascending=False).map(lambda x:"{:.2%}".format(x)) #queshibili是數(shù)據(jù)名 data_train是訓練集數(shù)據(jù)
queshi_bili

【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

第二種是使用describe()函數(shù)

data_train.describe()

【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

二、基于統(tǒng)計的缺失值處理方法

缺失值的處理方法我一般分為兩種,一種是基于統(tǒng)計學的填補方法,另外一種是基于機器學習的填補方法。
后續(xù)以data_train當中的 其他流動資產(chǎn)這個特征為例
【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

2.1 刪除

一些缺失值比例過大的數(shù)據(jù)還是需要將其刪除的,缺失值填補也僅僅只是基于當前數(shù)據(jù)進行預測,計算的,存在一定誤差。但填補的數(shù)據(jù)過多,反而只會帶來誤差。

del data['列名']

【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

按照比例進行刪除,這里是按照80%的比例進行刪除

t = int(0.8*data_train.shape[0]) # 確定刪除的比例下,占數(shù)據(jù)多少
data_train_shanchu = data_train.dropna(thresh=t,axis=1)#保留至少有 t 個非空的列
data_train_shanchu

【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

2.2 填充固定值

將缺失值都填充為給定常數(shù)

data.fillna(0, inplace=True) # 填充 0 第一個參數(shù)控制填充的常數(shù)

【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

也可以通過字典的形式,進行固定值填充,所給字典不夠填充的,就還是處于缺失值狀態(tài)

data.fillna({0:1000, 1:100, 2:0, 4:5}) 

【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

2.3 填充中位數(shù)、平均數(shù)、眾數(shù)

這三個數(shù)代碼相近,只需要將函數(shù)改為其他的即可。圖片是以平均數(shù)填充為例

data.fillna(data.mean(),inplace=True) # 填充均值
data.fillna(data.median(),inplace=True) # 填充中位數(shù)
data.fillna(data.mode(),inplace=True) # 填充眾數(shù)

【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

2.4 插值法填充,前值或者后值填充

插值法原理是將缺失值的數(shù)據(jù)的上下兩個數(shù)據(jù)相加除以2,也就是取平均,缺點是如果前面沒有值和后面沒有值,都將會導致缺失值依然存在。

data = data.interpolate()#上下兩個數(shù)據(jù)的均值進

【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

填充前面值或者后面值,填充缺失值的上一個數(shù)據(jù)或者下一個數(shù)據(jù),缺點與插值法相同,缺點是如果前面沒有值和后面沒有值,都將會導致缺失值依然存在。(圖片以前值為例)

data.fillna(method='pad', inplace=True) # 填充前一條數(shù)據(jù)的值,但是前一條也不一定有值
data.fillna(method='bfill', inplace=True) # 填充后一條數(shù)據(jù)的值,但是后一條也不一定有值

【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

三、基于機器學習的缺失值填充

采用的機器學習算法對于缺失值進行填充,從精度上是優(yōu)于統(tǒng)計方法的填充,但是相對的需要付出的算力和時間是遠遠大于統(tǒng)計方法的。
這里僅僅對代碼實現(xiàn)作為一個演示,其中的算法原理,可以自行搜索。

3.1 基于knn算法進行填充

from fancyimpute import KNN
data_train_knn = pd.DataFrame(KNN(k=6).fit_transform(data_train_shanchu)#這里的6是對周圍6個數(shù)據(jù)進行歐式距離計算,得出缺失值的結果,可以自行調(diào)整
columns=data_train_shanchu.columns)
data_train_knn

【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總
【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總
【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

3.2 基于隨機森林進行填充

使用隨機森林進行缺失值填補,其他像lightgbm,xgboost都是可行的,這里以隨機森林為例子
操作就是將其他特征作為數(shù)據(jù) 然后對缺失的數(shù)據(jù)進行填補,得到缺失值

from sklearn.ensemble import RandomForestRegressor
#利用隨機森林樹進行填補缺失值
train_data = train_data[['其他流動資產(chǎn)', '貨幣資金', '資產(chǎn)總計']]
df_notnull = train_data.loc[(train_data['其他流動資產(chǎn)'].notnull())]
df_isnull = train_data.loc[(train_data['其他流動資產(chǎn)'].isnull())]
X = df_notnull.values[:,1:]
Y = df_notnull.values[:,0]

# use RandomForestRegression to train data
RFR = RandomForestRegressor(n_estimators=1000, n_jobs=-1)
RFR.fit(X,Y)
predict = RFR.predict(df_isnull.values[:,1:])
predict

【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總

總結

大概目前的話,常用的缺失值處理方法就這些,后續(xù)的話我會接著更新其他的數(shù)據(jù)清洗的方法。我就不設置付費專欄啦,希望對各位有幫助!文章來源地址http://www.zghlxwxcb.cn/news/detail-432040.html

到了這里,關于【python】數(shù)據(jù)挖掘分析清洗——缺失值處理方法匯總的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包