House Prices (1):python 探索性数据分析

来源:互联网 发布:福州公司网络管理制员 编辑:程序博客网 时间:2024/05/07 17:35

如题,这是一个kaggle的训练赛。目标是预测房价。

评分指标是房价预测值与观测值取log后的RMSE,并且赛题指出取对数使得对较贵房子的预测误差和对便宜房子的预测误差对结果有同样的影响,为什么?

先把公式写出来:


RMSE=nt=1(y^tyt)2n. (1)

LOG_RMSE=nt=1[log(y^t)log(yt)]2n.2

这个问题很有意思,因为我们在金融、时间序列和一些科研文献中经常见到取对数的做法,如本人的一篇论文专门研究了取对数和不取对数对参数估计(气体泄漏源反演)的影响:

Wang Y, Huang H, Huang L, et al. Evaluation of Bayesian source estimation methods with Prairie Grass observations and Gaussian plume model: A comparison of likelihood functions and distance measures[J]. Atmospheric Environment, 2017, 152: 519-530.

直观的想,比如考虑房价1000和0.001,取了对数之后分别是3和-3,这样各自计算预测误差后基本在一个量级上,也即体现了对“大数”和“小数”预测误差同等的重视。关于这一点有人知道更具有理论高度的观点欢迎讨论。

打开jupyter开始逐行运行kaggle网友的经验分享。

首先是https://www.kaggle.com/pmarcelino/comprehensive-data-exploration-with-python。几点思考:

  • scatter和boxplot的区别(显然此时应该用boxplot):
    显然这时候应该
  • 用seaborn的.pairplot() 可以一次画很多散点图

  • 考虑价格随房屋老旧程度变化时,这个价格有没有考虑通货膨胀?

  • 相关系数的热度图可以直观看到多重共线性
  • 缺失值处理问题, 熟悉pandas的各种操作
  • 异常值处理?
  • 对存在异方差性(heteroscedasticity)的模型可以采用加权最小二乘法进行估计。异方差性的检测——White test
  • data transformations
  • 相关误差问题
  • 数据的正态性,取对数后的正态性
  • ‘high risk engineering’处理0值不能取对数
  • dummy variables
  • Hair et al., 2013, Multivariate Data Analysis, 7th Edition (https://www.amazon.com/Multivariate-Data-Analysis-Joseph-Hair/dp/0138132631)

现在看第二个EDA:https://www.kaggle.com/dgawlik/house-prices-eda。代码稍微难读一些,用的python技巧和统计学方法较多。要点如下:

  • 定性属性与定量属性, dtype
  • Johnson’s SU-distribution
  • P值小拒绝原假设
  • pd.melt, sns.FaceGrid
  • 类别变量: train[c] = train[c].cat.add_categories([‘MISSING’])
  • ANOVA test
  • 聚类: k均值
  • -
原创粉丝点击