美文网首页NLP/ML/DL
回归分析预测波士顿房价

回归分析预测波士顿房价

作者: Mc杰夫 | 来源:发表于2017-11-07 15:43 被阅读0次

上周完成了回归分析预测波士顿房价的工作,因数据太少,预测准确度波动很大。总结回归分析的流程,整理放在这个文章里。

一个需要明确的点是回归分析所研究的统计关系,是在进行大量的观测或试验后建立起的经验关系,并非一定是因果关系。

基本概念

explanatory/independent/predictor variables, risk factor, feature都是自变量x。

explained/dependent/predicted/responding/responding/experimental/outcome variables, label都是对象y。

数据来源

Python的Sklearn module中的boston house price数据,共506组房屋数据,每组数据13个features。对象y是房价中间值median value。属性信息如下:

- CRIM per capita crime rate by town

- ZN      proportion of residential land zoned for lots over 25,000 sq.ft.

- INDUS    proportion of non-retail business acres per town

- CHAS    Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)

- NOX      nitric oxides concentration (parts per 10 million)

- RM      average number of rooms per dwelling

- AGE      proportion of owner-occupied units built prior to 1940

- DIS      weighted distances to five Boston employment centres

- RAD      index of accessibility to radial highways

- TAX      full-value property-tax rate per $10,000

- PTRATIO  pupil-teacher ratio by town

- B        1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town

- LSTAT    % lower status of the population

回归分析流程:

1 根据观察、统计或者业务需求,确定自变量x和对象y之间的关系式,也就是回归方程,并对方程的可信度进行统计检验;

2 对自变量x做显著性检验,判断哪些对于对象y是有影响的因子。

3 利用所建立的回归方程来预测未来时刻的预报对象做出预测,并给出可信度区间。

Data preprocessing

Boston house price的数据比较规范,但各feature的数据各自尺度不同,需要做data scaling。具体scaling需要哪些准备或者明确的标准,我还需要在以后的研究中深入研究下。这次的数据,用了sklearn里面的sklearn.preprocessing.scale指令,默认是做standardisation的,也就是某个feature的值减去期望再初standard deviation。如果数据是right/left skewed,则可能需要做logarithmic transformation,但做log的前提是数据要大于0.

指令:

tra_data = pd.DataFrame(sklearn.preprocessing.scale(ori_data.data[tra_index]),columns=ori_data.feature_names)[features_selected]

X-validation

随机选80%的数据作为training set,剩余数据作为test set。

回归

回归采用线性回归,Lasso回归和岭回归三种方法,对比效果。使用方式一样

from sklearn.linear_model import LinearRegression,Lasso,Ridge

lasso = Lasso(alpha=alpha_for_lasso)

lasso.fit(tra_data,tra_label)

三步就训练出了Lasso模型,再使用pred_label_lasso = lasso.predict(test_data)就会得到预测的label值。

性能检测

不同于分类,回归分析方法以MSE为主要measurement metrics,

mse_lasso = sklearn.metrics.mean_squared_error(test_label,pred_label_lasso)

MSE表示均方误差,越小越好。

另外R2指标展示的是模型(或回归参数w)对数据的拟合程度,这个数值在0到1之间,越大越好。

from sklearn.metrics import r2_score as r2

r2_lasso = r2(test_label,pred_label_lasso)

feature对label的显著性和feature间的multi collinearity

最简单的方法是计算features和label的相关性和features间彼此的相关性。

可使用F检验计算各feature间的F值和p值。

可使用recursive feature elimination RFE递归特征消除来选择feature。反复构建模型(SVM, Linear regression and etc.)选出最好/坏的特征(根据系数大小),并排除,再对剩余features重复这个过程。

Lasso回归可自动使非重要feature的权重变为0,用于feature selection和避免multi collinearity都是可行的。

如何处理features比instance个数多的情况

feature多于instance的潜在风险是overfitting。在随机森林中,feature可以随机选取。Lasso回归自动执行了feature selection,可以用于处理这种情况。另外检查feature间的相关性,剔除冗余feature也可行。

更多笔记见笔记本

相关文章

  • 回归分析预测波士顿房价

    上周完成了回归分析预测波士顿房价的工作,因数据太少,预测准确度波动很大。总结回归分析的流程,整理放在这个文章里。 ...

  • [Deep-Learning-with-Python]基于Ker

    预测房价:回归问题 回归问题预测结果为连续值,而不是离散的类别。 波士顿房价数据集 通过20世纪70年代波士顿郊区...

  • 波士顿房价预测

    机器学习实战小项目之波士顿房价预测 前言 波士顿房价预测项目是一个简单的回归模型,通过该项目的学习可以学会一些关于...

  • 【深度学习】PaddlePaddle计算机视觉项目:波士顿房价预

    波士顿房价预测模型,是经典的线性回归模型。记得吴恩达深度学习课程的第一课就是讲波士顿房价预测模型,入门的项目。Pa...

  • scikit_learn学习笔记三——监督学习之分类与回归

    分类 手写体分类 支持向量机分类器LinearSVC 回归预测 预测的目标是连续变量 波士顿房价预测 Linear...

  • SVM支持向量机回归

    利用SVM回归模型预测练习,数据集是sklearn集成的美国波士顿地区房价。kernel=‘rbf’,指用...

  • 回归问题建模

    本文以python内置数据集“波士顿发房价预测”为例,总结常见的回归模型用法。 多元线性回归 多项式回归 一、导入...

  • keras-boston房价回归

    先简单介绍数据集,然后基于keras构建一个多层神经网络,实现对房价的回归预测。 波士顿房价数据集(Boston ...

  • 机器学习之线性回归

    线性回归 场景:使用线性回归来预测波士顿房价。 说明 线性回归,即学习一个线性方程来拟合特征X与结果Y。如根据房屋...

  • 线性回归、岭回归

    用sklearn内置的波士顿房屋数据集做一下房价预测,练习线性回归的API。 正规方程法 梯度下降法 岭回归 获取...

网友评论

    本文标题:回归分析预测波士顿房价

    本文链接:https://www.haomeiwen.com/subject/qkpdmxtx.html