深圳房价线性回归分析及预测= =

1.数据清洗data = data.rename(columns={‘Unnamed: 0‘: ‘id‘})给第一列起名id

data = data[data[‘Rooms‘] != ‘Unknown‘]data[‘Rooms‘] = data[‘Rooms‘].astype(int)data[‘Living Rooms‘] = data[‘Living Rooms‘].astype(int)data[‘Height‘] = data[‘Height‘].astype(int)data = data[data[‘Undergroud‘] != ‘Unknown‘]data[‘Undergroud‘] = data[‘Undergroud‘].astype(int)data[‘Distance To Underground‘] = data[‘Distance To Underground‘].astype(int)# print data.describe()挑出datda中‘Room‘这一列中的‘Unknown‘,并将这一列转化成int形式的数据,然后对‘Living Rooms‘,‘Height‘等数值型数据做了同样的处理(应该可以做个循环?
# print data.groupby(‘Rooms‘).count()data = data[(data[‘Rooms‘] > 0) & (data[‘Rooms‘] < 8)]data = data[data[‘Rooms‘] > data[‘Living Rooms‘]]把‘Rooms‘计数,发现有0间房间,8间以上房间的屋子,故剔除并重新赋值给data,又剔除‘Living Rooms‘比‘Rooms‘还多的异常数据。(另,# print data.groupby(‘Rooms‘).count()这个跑出来有好多列相同的,所以后来后面加了[‘price‘])
# plt.plot(data[‘Price‘],‘o‘,alpha = 0.5)# plt.show()# plt.plot(data[‘Height‘],‘-‘,alpha = 0.5)# plt.show()data = data[(data[‘Price‘] < 5000)]然后‘Price‘,‘Height‘画图,‘Height‘没有异常值,约束‘Price‘小于5000
dummy_decoration = pd.get_dummies(data[‘Decoration‘], prefix=‘decoration‘)dummy_Region = pd.get_dummies(data[‘Region‘], prefix=‘Region‘)dummy_Orientation = pd.get_dummies(data[‘Orientation‘], prefix=‘Orientation‘)dummy_Floor = pd.get_dummies(data[‘Floor‘], prefix=‘Floor‘)dummy_Elevator = pd.get_dummies(data[‘Has Elevator‘], prefix=‘Elevator‘)处理字符型变量,都用的哑变量(或许?可以建立个函数直接调用?
data = pd.merge(data, dummy_decoration, right_index=True, left_index=True)data = pd.merge(data, dummy_Region, right_index=True, left_index=True)data = pd.merge(data, dummy_Orientation, right_index=True, left_index=True)data = pd.merge(data, dummy_Floor, right_index=True, left_index=True)data = pd.merge(data, dummy_Elevator, right_index=True, left_index=True)把新建的哑变量粘到data上(靠,好傻,应该写个函数调用的
# X=data.loc[:,(‘Size‘,‘Rooms‘,‘Living Rooms‘,‘Height‘,‘Undergroud‘,#               ‘Distance To Underground‘,‘dummy_decoration‘,‘dummy_Region‘,#               ‘dummy_Orientation‘,‘dummy_Floor‘,‘dummy_Elevator‘)]# print X到这里报错了,后来明白了,因为data里面并没有dummy_decoration,而是decoration_delicate/simple之类,故。。。弃
X = data# print X.columns看一下X里面的变量名X = X.drop([‘id‘, ‘Built Year‘, ‘Region‘, ‘Decoration‘, ‘Floor‘, ‘Orientation‘, ‘Has Elevator‘, ‘Price‘,            ‘Year Of Property‘, ‘Tag‘], axis=1)# print X.info()Y = data[‘Price‘]不再选,而是舍弃data中的一些变量,作为X(可是为什么要看X的空值来着?),把‘Price‘赋给Y,到这里,我的数据就处理完了。然后就可以对‘Train.csv‘动手了,但是对‘Test.csv‘依旧要做一样的数据处理,所以写了个函数:
def SZ(data):。。。  中间就是上面的数据处理过程。。。

return X,Y数据处理,以上#
2.线性回归读取数据:data1=pd.read_csv(‘Train.csv‘)X_train=SZ(data1)[0]Y_train=SZ(data1)[1]

data2=pd.read_csv(‘Test1.csv‘)X_test=SZ(data2)[0]Y_test=SZ(data2)[1]
对Train中数据做线性回归,求线性系数,并带入X_test,得到Y_pred:linreg=LinearRegression()linreg.fit(X_train,Y_train)print linreg.get_params()print linreg.coef_print linreg.intercept_
Y_pred = linreg.predict(X_test)
求MAPE等评价上面求得的线性模型:print "MAE:",metrics.mean_absolute_error(Y_test, Y_pred )m=(Y_test - Y_pred )/Y_testa=map(abs,m)p=sum(a)/len(m)print "MAPE:",p*100print "R2:", metrics.r2_score(Y_test, Y_pred )plt.plot(Y_test, Y_pred,‘o‘,alpha = 0.5)plt.plot([0,4000],[0,4000],‘r--‘)plt.show()
附一些结果:

MAE: 123.090078901
MAPE: 23.7656379369
MSE: 34517.8775484
RMSE: 185.78987472
R2: 0.805982042193

卒。。。



 

时间: 2024-10-12 04:42:35

深圳房价线性回归分析及预测= =的相关文章

一元线性回归分析及java实现

http://blog.csdn.net/hwwn2009/article/details/38414911 一元线性回归分析及java实现 2014-08-07 11:02 1072人阅读 评论(0) 收藏 举报  分类: DataMining(17)  一元线性回归分析是处理两个变量之间关系的最简单模型,它所研究的对象是两个变量之间的线性相关关系.通过对这个模型的讨论,我们不仅可以掌握有关一元线性回归的知识,而且可以从中了解回归分析方法的基本思想.方法和应用. 一.问题的提出 例2-1-1 

微软数据挖掘算法:Microsoft 线性回归分析算法(11)

前言 此篇为微软系列挖掘算法的最后一篇了,完整该篇之后,微软在商业智能这块提供的一系列挖掘算法我们就算总结完成了,在此系列中涵盖了微软在商业智能(BI)模块系统所能提供的所有挖掘算法,当然此框架完全可以自己扩充,可以自定义挖掘算法,不过目前此系列中还不涉及,只涉及微软提供的算法,当然这些算法已经基本涵盖大部分的商业数据挖掘的应用场景,也就是说熟练了这些算法大部分的应用场景都能游刃有余的解决,每篇算法总结包含:算法原理.算法特点.应用场景以及具体的操作详细步骤.为了方便阅读,我还特定整理一篇目录:

一元线性回归分析笔记

1.定义: 利用已有样本,产自拟合方程,从而对(未知数据)进行预测. 2.用途: 预测,合理性判断. 3.分类: 线性回归分析:一元线性回归,多元线性回归,广义线性(将非线性转化为线性回归,logic回归) 非线性回归分析 4.困难: 变量选取,多重共线性,观察拟合方程,避免过度拟合 5.关系: 函数关系:确定性关系,y=a*x+b 相关关系:非确定性关系 相关系数:正数为正相关(同增同长),负数为负相关(同增同减) 6.一元线性回归模型: 1) 若X与Y间存在着较强的相关关系,则我们有Y≍a+

R语言 多元线性回归分析

#线性模型中有关函数#基本函数 a<-lm(模型公式,数据源) #anova(a)计算方差分析表#coef(a)提取模型系数#devinace(a)计算残差平方和#formula(a)提取模型公式#plot(a)绘制模型诊断图#predict(a)用作预测#print(a)显示#residuals()计算残差#setp()逐步回归分析#summary()提取模型资料 #多元线性回归分析 #回归系数的估计 #显著性检验: 1回归系数的显著性检验 t检验 就是检验某个变量系数是否为0 2回归方程的显

深圳房价连跌九个月 然而华为员工都狂呼买不起房

导语:7月1日,市规土委发布6月房价数据显示,6月房价为54492元/平方米,较5月微幅下滑.至此,市场需求逐步释放,成交2953套一手住宅,为今年上半年的最高值. 关注我们每月深圳房价分析的推送的朋友就知道,自去年10月至今,深圳房价就一直在跌,正如近段时间火热的新闻里说的,连续九个月环比下跌.至今已下跌了7108元/平方米.用下图的2016年10月的数据与今年6月的数据对比,可以感受到跌幅的程度. 奥威Power-BI大数据分析平台记录的去年10月的房价数据 奥威Power-BI大数据分析平

数据说话了:6万一房成“全球第二贵“ 狂跌的深圳房价5月又回暖?

深圳是一个房价不低的城市,这点没人敢说否.的确,深圳经过20年的楼市发展,从05年的6000元,到2008年的1万,到2005年的3.5万,到2017年的5万,这就是房价的历程. 但是3月楼市调控的一记重锤让深圳房价出现了一跌再跌的奇迹,4月还在下滑的“滑滑梯”阶段.让人不禁猜疑,5月的深圳房价要跌出新境界,还是神转折,转向稳健呢? 根据国土公布的数据,4月份一手住宅成交价下滑0.2%,跌到5.46万.然成交量略有上涨,是是近三个月以来的最高月成交水平.从区域来看罗湖.龙岗.宝安下跌幅度较大,仅

python之简单线性回归分析

使用sklearn库的linear_model.LinearRegression(),可以非常简单的进行线性回归分析 以下为代码: 1 # 导入sklearn库下的linear_model类 2 from sklearn import linear_model 3 # 导入pandas库,别名为pd 4 import pandas as pd 5 6 filename = r'D:\test.xlsx' 7 # 读取数据文件 8 data = pd.read_excel(filename) 9

《用Python玩转数据》项目—线性回归分析入门之波士顿房价预测(二)

接上一部分,此篇将用tensorflow建立神经网络,对波士顿房价数据进行简单建模预测. 二.使用tensorflow拟合boston房价datasets 1.数据处理依然利用sklearn来分训练集和测试集. 2.使用一层隐藏层的简单网络,试下来用当前这组超参数收敛较快,准确率也可以. 3.激活函数使用relu来引入非线性因子. 4.原本想使用如下方式来动态更新lr,但是尝试下来效果不明显,就索性不要了. def learning_rate(epoch): if epoch < 200: re

多元线性回归分析浅谈

  回归分析方法说白了就是处理多个变量相互依赖关系的一种数理统计方法(之前并没学过数理统计,恶补了一下,挺爽的~).这篇随笔中主要运用了线性代数和数理统计知识,欢迎各方大佬指正,错误之处,不胜感激. 一.建立模型 这里我们假定研究变量Y与x1,x2,x3--xm,m个变量之间的相互依赖关系.采取现实生活中观测的n组变量Y与变量x数据,建立如下方程组: yi=β0+β1xi1+β2xi2+--βmxim+εi(i=1,2,3--n) 即:Y=Cβ+ε 为弥补建立的方程组与实际数据的误差,引入ε为随