各位好,我是乾颐堂大堂子。领取完整实战指南可以私信我,关键词:实战指南
1.导入相关python库
2.数据处理
下载的是两个数据文件,一个是真实数据,一个是测试数据,打开kc_train.csv,能够看到第二列是销售价格,而我们要预测的就是销售价格,所以在训练过程中是不需要销售价格的,把第二列删除掉,新建一个csv文件存放销售价格这一列,作为后面的结果对比。
2.1数据说明
数据主要包括2014年5月至2015年5月美国King County的房屋销售价格以及房屋的基本信息。 数 据分为训练数据和测试数据, 分别保存在kc_train.csv和kc_test.csv两个文件中。 其中训练数据主要包括10000条记录, 14个字段, 主要字段说明如下:
第一列 “销售日期” : 2014年5月到2015年5月房屋出售时的日期
第二列 “销售价格” : 房屋交易价格, 单位为美元, 是目标预测值
第三列 “卧室数” : 房屋中的卧室数目
第四列 “浴室数” : 房屋中的浴室数目
第五列 “房屋面积” : 房屋里的生活面积
第六列 “停车面积” : 停车坪的面积
第七列 “楼层数” : 房屋的楼层数
第八列 “房屋评分” : King County房屋评分系统对房屋的总体评分
第九列 “建筑面积” : 除了地下室之外的房屋建筑面积
第十列 “地下室面积” : 地下室的面积
第十一列“建筑年份” : 房屋建成的年份
第十二列“修复年份” : 房屋上次修复的年份
第十三列"纬度": 房屋所在纬度
第十四列“经度” : 房屋所在经度
测试数据主要包括3000条记录, 13个字段, 跟训练数据的不同是测试数据并不包括房屋销售价格, 学员需要通过由训练数据所建立的模型以及所给的测试数据,得出测试数据相应的房屋销售价格预测值。
3.特征预处理常用方法:归一化、标准
把数据进行无量纲化,使不同规格的数据转换到同一规格。
(选做)3.1特征缩放/数据归一化MinMaxScaler()
3.1.1将数据放缩到给定的范围
fit_transform(self, X[,y])计算并将数据放缩到给定的范围:
fit():计算给定数据集X的最大值/最小值用于后面的放缩;
transform():将数据集X放缩到给定的范围内。
fit_transform(),包含上述两个功能。
3.1.2恢复给定范围的数据
inverse_transfom(self, X)
3.1.3归一化解释
3.1.4为什么训练集用fit_transform而测试集用transform
训练集已经通过fit_transform求出了一些固有属性,测试集可沿用上述属性直接标准化,不必重新再求
3.1.5归一化使用局限
因为归一化是通过最大值、最小值的把数据映射到一个新的区间里,所以如果数据中有异常值(最大或者最小值是异常的、离谱的),这样机会影响整个数据的映射分布。所以这种方法鲁棒性较差,只适合传统精确小数据场景。
有没有更加通用的一种数据规范化方式呢?下面是标准化StandardScaler()。
(选做)3.2数据标准化StandardScaler()
数据标准化StandardScaler()是把数据变换到均值为0,标准差为1的范围内。标准化StandardScaler()不易受异常值的影响。在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。
4.模型训练
使用sklearn库的线性回归函数进行调用训练。梯度下降法获得误差最小值。
最后使用MSE和R2来评价模型的好坏程度并画图进行比较。
4.1(选做)线性回归
4.2(选做)随机梯度下降SGD
4.3(选做)岭回归Ridge
5.模型评估(注意替换参数)
6.绘制图像
7.输出结果