我正在尝试实施机器学习算法来预测纽约市的房价。
现在,当我尝试绘制(使用Seaborn)房屋价格数据集的两列之间的关系时:“ gross_sqft_thousands”(房屋总面积(以数千平方英尺为单位))和目标-列是“ sale_price_millions”,我得到了一个奇怪的图:
用于绘制的代码:
sns.regplot(x="sale_price_millions", y="gross_sqft_thousands", data=clean_df);
当我尝试绘制商业单位数量(commercial_units列)与sale_price_millions的关系图时,我也得到了一个奇怪的图,如下所示:
这些怪异的图,尽管在相关矩阵中,sale_price与两个变量(gross_sqft_thousands和commercial_units)具有很好的相关性。
我在做什么错了,我应该怎么做才能得到更好的情节,更少的分数和像这样的情节的清晰拟合:
这是我的数据集的一部分:
答案 0 :(得分:1)
您的住房价格数据集比该Seaborn示例图中显示的tips
数据集要大得多,因此使用默认设置制作的散点图将非常拥挤。
第二个图看起来“很奇怪”,因为它相对于整数值total_units
绘制了(实际上)连续变量销售价格。
想到以下解决方案:
使用类似sns.regplot(x="sale_price_millions", y="gross_sqft_thousands", data=clean_df[::10])
的格式对数据集进行下采样。 [::10]
部分从clean_df
中选择每10行。您也可以尝试clean_df.sample(frac=0.1, random_state=12345)
,它会随机采样所有行的10%
无需替换(使用随机种子获得可重复性)。
使用sns.regplot(x="sale_price_millions", y="gross_sqft_thousands", data=clean_df, scatter_kws={"alpha": 0.1, "s": 1})
减小散点图的alpha(不透明度)和/或大小。
对于图2,使用sns.regplot(..., y_jitter=0.05)
向y轴变量添加一点“抖动”(随机噪声)。
有关更多信息,请查看regplot
上的Seaborn文档:https://seaborn.pydata.org/generated/seaborn.regplot.html