实例
在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