机器学习算法最终学习结果的优劣取决于两个主要因素:数据的质量和数据中蕴含的有用信息的数量。
一、缺失数据的处理
<一>删除缺失值
1. # Title : TODO
2. # Objective : TODO
3.
5.
6.
7. import numpy as np
8. import pandas as pd
9. from io import StringIO
10.
11. data = '''''''A,B,C,D
12. 1,2,3,4
13. 5,6,,8
14. 0,11,12,'''
15.
16. df = pd.read_csv(StringIO(data))
17. print(df)
18.
19. df.isnull().sum() # 返回一个布尔型的DataFrame值
20.
21. df.dropna() # 将含有缺失值的行删除
22.
23. df.dropna(axis=1) # 将含有缺失值的列删除
24.
25. df.dropna(how="all") # 全部缺失时才删除
26.
27. df.dropna(thresh=4) # 删除包含缺失值但数目小于4的行
28.
29. df.dropna(subset=['C']) # 删除特定列元素为缺失值的行
<二>缺失值数据填充
1. from sklearn.preprocessing import Imputer
2. imr = Imputer(missing_values='NaN', strategy='mean', axis=0)
3. # 这里使用的是每列均值填充,axis=1的话用每行的均值填充
4. imr = imr.fit(df)
5. imputer_data = imr.transform(df.values)
6. print(imputer_data)
7.
8.
9. [[ 1. 2. 3. 4. ]
10. [ 5. 6. 7.5 8. ]
11. [ 0. 11. 12. 6. ]]
二、处理类别数据
首先构造一个数据集: