1.上次的blog中说了说数据分割的方法,这次我想谢谢数据处理的过程,大多数的机器学习中原始数据集会出现数据缺失、数据异常等等问题,而我们在做机器学习中数据集的重要性不言而喻,所以在实验之前我们要对数据集进行一定的处理。
注:数据集还是使用的美国加利福利亚州各地的房价,这在我的上一篇blog中有点击打开链接
针对数据缺失我们可以有三种方法进行处理:
1)去掉对应的街区
2)去掉整个属性
3)进行填充(0、平均值、中位数等)
在pandas中则有dropna(),drop(),fillna()这三种方法进行处理:
median = housing["total_bedrooms"].median()
housing["total_bedrooms"].fillna(median)
其中,median就是中位数
这种方法需要计算数据集中每个属性的中位数,用中位数填充数据。在sklearn中Imputer可以较好的处理这个问题,代码如下:
from sklearn.preprocessing import Imputer
imputer = Imputer(strategy="median") # 这个strategy有三种median/mean/most_frequent
housing_num = housing.drop("ocean_proximity", axis=1) # 删除ocean_proximity这个参数因为它本身不是一个数值
imputer.fit(housing_num) # 重点的方法,fit()方法将实例拟合到训练数据中
all_median = imputer.statistics_ # 所有数据的中间值
第一行代码就是创建一个实例,总共有三种可选的策略