1、西雅图房价预测模型
1、用jupyter notebook来进行房价线性回归预测
import graphlab
sales = graphlab.SFrame('house_data.csv')
sales
即可在表格中显示数据集
2、探索房子售价相关数据
graphlab.canvas.set_target('ipynb')#这里一般默认browser/在这里修改为在ipython notebook中显示
sales.show(view="scatter Plot",x = "sqlf_livig",y = "price") #显示房屋面积与房价之间关系的散点图
3、建立一个房屋面积与价格的简单回归模型
- 将数据分为训练集和测试集,百分之80为训练集,百分之20为测试集
train_data,test_data = boston.random_split(.8,seed = 0)
seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。
- 残差平方和找到最好的拟合直线 RSS
- 内置函数linear创建一个线性回归模型(用一种特定的算法牛顿迭代法)graphlab create会自动的选择算法,除非你告诉它使用哪一个
sqft_model = graphlab.linear_regression.create(train_data,target= 'price',features=['sqft_living']
结果呈现为:
4、评估这个模型(查看测试数据集)
print test_data['price'].mean()
#用测试数据评估一下平方尺模型
print sqft_model.evaluate(test_data)
#会得到所有测试数据集的最大误差,RMSE均方根误差
解雇显示出最大误差以及平均误差(均方根误差)
#查看预测的怎么样 Let's show what our predictions look like
import matplotlib.pyplot as plt
%matplotlib inline
#会在记事本上进行绘图
- 最初绘图以及测试图表示,测试数据为参数 2,4,5
#最初绘图以及测试图表示,测试数据为参数
plt.plot(test_data['sqft_living'],teat_data['price'],'.',
test_data['sqft_living'],sqft_model.predict(test_data),'-')
#最初绘图为散点图,测试图为一条射线形式
- 用get函数得到模型的系数也为权重
sqft_model.get('coefficients')
5、挖掘数据中的其他特性
my_features = ['bedrooms','bathrooms','sqft_living','sqft_lot','floors','zipcode']
sales[my_features].show()
结果呈现为:
- 用zipcode特征属性来预测房价
sales.show(view='BoxWhisker Plot',x='zipcode',y='price')
结果呈现为:
print sqft_model.evaluate(test_data)
#要先建立一个my_features_model//my_features_model = graphlab.linear_regression.create(train_data,target= 'price',features=my_features)
print my_features_model.evaluate(test_data)
6、对特定房子进行房价预测
可以在jupyter notebook中显示图片
<img src="C:\Users\28246\1.jpg">
- 对房子1进行房价预测
house1 = sales[sales['id']==5309101200]
print house1['price']
print sqft_model.predict(house1)
print my_features_model.predict(house1)
#一般情况下,特征给的越多,预测的结果就越好,普遍结果
#对于特定房屋,简单的模型反而会比复杂的模型预测的更好
结果呈现为:
- 对房子2进行房价预测
#过滤条件
house2 = sales[sales['id']=='1925069082']
house2
<img src = '.gdp'>
print sqft_model.predict(house2)
print my_features_model.predict(house2)
结果呈现为:
- 对比尔盖茨的房子进行房价预测
bill_gates =
print my_feature_model.predict(bill_gates)
结果呈现为: