python预处理缺失值_[Scikit-Learn] - 数据预处理 - 缺失值(Missing Value)处理
reference :?http://www.cnblogs.com/chaosimple/p/4153158.html
關(guān)于缺失值(missing value)的處理
在sklearn的preprocessing包中包含了對(duì)數(shù)據(jù)集中缺失值的處理,主要是應(yīng)用Imputer類(lèi)進(jìn)行處理。
首先需要說(shuō)明的是,numpy的數(shù)組中可以使用np.nan/np.NaN(Not A Number)來(lái)代替缺失值,對(duì)于數(shù)組中是否存在nan可以使用np.isnan()來(lái)判定。
使用type(np.nan)或者type(np.NaN)可以發(fā)現(xiàn)改值其實(shí)屬于float類(lèi)型,代碼如下:
因此,如果要進(jìn)行處理的數(shù)據(jù)集中包含缺失值一般步驟如下:
1、使用字符串'nan'來(lái)代替數(shù)據(jù)集中的缺失值;
2、將該數(shù)據(jù)集轉(zhuǎn)換為浮點(diǎn)型便可以得到包含np.nan的數(shù)據(jù)集;
3、使用sklearn.preprocessing.Imputer類(lèi)來(lái)處理使用np.nan對(duì)缺失值進(jìn)行編碼過(guò)的數(shù)據(jù)集。
代碼如下:
上述代碼使用數(shù)組X去“訓(xùn)練”一個(gè)Imputer類(lèi),然后用該類(lèi)的對(duì)象去處理數(shù)組Y中的缺失值,缺失值的處理方式是使用X中的均值(axis=0表示按列進(jìn)行)代替Y中的缺失值。
當(dāng)然也可以使用imp對(duì)象來(lái)對(duì)X數(shù)組本身進(jìn)行處理。
通常,我們的數(shù)據(jù)都保存在文件中,也不一定都是Numpy數(shù)組生成的,因此缺失值可能不一定是使用nan來(lái)編碼的,對(duì)于這種情況可以參考以下代碼:
上述代碼line模擬從文件中讀取出來(lái)的一行數(shù)據(jù),使用nan來(lái)代替原始數(shù)據(jù)中的缺失值編碼,將其轉(zhuǎn)換為浮點(diǎn)型,然后使用X中的均值填補(bǔ)Z中的缺失值。
總結(jié)
以上是生活随笔為你收集整理的python预处理缺失值_[Scikit-Learn] - 数据预处理 - 缺失值(Missing Value)处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python opencv轮廓提取_Py
- 下一篇: 消防给水及消火栓系统技术规范_2019一