实例
在jupyter中实现
导入所需要的python库
导入数据
查看是否有缺失值
绘制price列 的图表
发现没有离散值
绘制carat列的图表
发现有离散值!绘制carat列的图表,发现carat最大值虽然为5克拉但是非常少,但是超过2克拉的值非常少,所以保留最大值2克拉以内的数据
去除离散值
去除离散值后绘图
绘制cut_ord列的图表,数字越大等级越高 发现数据中切工等级多分布在中高级
绘制净度等级clarity_ord的图表 数字越大等级越高 发现数据中净度等级为8个等级多分布在低中级
建立新的索引
发现三个变量和price列都不呈线性分布
使用price列的log对数做散点图
发现carat列和log_price列是呈线性分布的,而且是正分布
删除price列
删除cut_ord列和clarity_ord列
创建虚拟变量
把虚拟变量提取出来放入cols中
创建要做回归分析的data_preprocessed数据框
以上都是进行数据处理的过程,接下来才要进行回归分析。
把log_price列的数据提取出来,然后删除log_price列
表转化为数据
分割训练集和测试集
创建回归
创建训练集的散点图
y_train数据里是原有price训练集的log数值 而y_hat是price的预测值./ 从散点图可以看出price的log值(y_train)和price的预测值(y_hat)无差异,模型经过了第一次检验
所有变量的权重如果为正数 表示价格(price)只会随着该变量而增加;若为负数 表示价格(price)会因为该变量而下降
创建测试集的散点图
原始价格(log_price)测试集(y_test)和预测价格测试集(y_hat_test)同样是呈线性分布
把预测价格放入df_pf数据框中 这个价格是通过x_test测试集预测出的
测试集含有20%的数据,y_test是原有的价格
把两组数据放在一个数据框中
残差检验
差异百分比
描述统计中显示差异百分比最大值为292.55 较大
使用display函数展示差异百分比后300行(tail(300))的 数据 发现差异百分比超过100%也就300行,而测试集数据共有9900行,300/9900=3%,占数据的3%
绘制差异百分比图表
由差异百分比图表的呈现可知。差异百分比多集中在100%之内,多分布在0-50之间,占总数据的90%以上,所以该模型还不错,可以用于数据预测。
Over
Created By Tao