python - 如何绘制两个连续值之间的线性回归?
问题描述
我正在尝试实施机器学习算法来预测纽约市的房价。
现在,当我尝试绘制(使用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)的相关性非常好。
我做错了什么,我应该怎么做才能得到很好的情节,用更少的点和清晰的拟合像这样的情节:
这是我的数据集的一部分:
解决方案
您的房价数据集比tips
Seaborn 示例图中显示的数据集大得多,因此使用默认设置制作的散点图将非常拥挤。
第二个图看起来很“奇怪”,因为它绘制了一个(实际上)连续变量销售价格与一个整数值变量total_units
。
想到以下解决方案:
使用类似的东西对数据集进行下采样
sns.regplot(x="sale_price_millions", y="gross_sqft_thousands", data=clean_df[::10])
。该[::10]
部件每 10 行从clean_df
. 您也可以尝试clean_df.sample(frac=0.1, random_state=12345)
,它随机抽取所有行的 10% 而不进行替换(使用随机种子来实现可重复性)。使用 减小散点图点的 alpha(不透明度)和/或大小
sns.regplot(x="sale_price_millions", y="gross_sqft_thousands", data=clean_df, scatter_kws={"alpha": 0.1, "s": 1})
。对于图 2,使用 向 y 轴变量添加一点“抖动”(随机噪声)
sns.regplot(..., y_jitter=0.05)
。
有关更多信息,请查看 Seaborn 文档regplot
:https ://seaborn.pydata.org/generated/seaborn.regplot.html
推荐阅读
- python - 使用“'NoneType' 对象没有属性 'append'' 附加到列表错误
- c++ - 使用 Opencv 和 Pixhawk2 跟踪另一架无人机
- javascript - 使用 React 和 Firebase 连接到 Facebook
- reactjs - 路由更改后刷新组件
- python - 如何将带有“,”和“/n”的字符串转换为pandas DataFrame?
- vba - 如何通过单击 Word 中的 ContentControl 复选框来运行 VBA 脚本
- python - 如何在 Python 中区分扫描的 PDF 和原生 PDF?
- c# - 如何在 FormatException 中一般地记录受影响的字符串?
- tensorflow - Uber Ludwig Toolbox:将生成的模型导出到 Google 平台 ML Engine
- mysql - 即使为 0,也计算每个特定行的 Total Transaction