代码改变世界

回归模型与房价预测

2018-12-06 11:53  cqchenqin  阅读(228)  评论(0编辑  收藏  举报
from sklearn.datasets import load_boston# 导入boston房价数据集
boston=load_boston()
import numpy
boston.keys()#查看每一个key值

print(boston.DESCR)

boston.data.shape

import pandas as pd 
pd.DataFrame(boston.data)

boston.feature_names

boston.target

import pandas as pd#以(类似excel)表格形式表现boston.data数据集
df=pd.DataFrame(boston.data)
df

#求出w,b之后可以画出x和y的直线与点图的关系。一元线性回归
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
x = x.reshape(-1,1)
lr.fit(x,y)
w = lr.coef_         #y=wx+b,w为斜率,b为截距
b = lr.intercept_
print(w)
print(b)


from matplotlib import pyplot as plt
x=boston.data[:,5]
y=boston.target
plt.scatter(x,y)   #点图
plt.plot(x,9.1*x-34.7,'r')    #直线
plt.show()
x.shape


import matplotlib.pyplot as plt
x = boston.data[:,12].reshape(-1,1)
y = boston.target
plt.figure(figsize=(10,6))
plt.scatter(x,y)

from sklearn.linear_model import LinearRegression
lineR = LinearRegression()
lineR.fit(x,y)
y_pred = lineR.predict(x)
plt.plot(x,y_pred)
print(lineR.coef_,lineR.intercept_)

plt.show()


#多元线性回归
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(boston.data,y)
w = lr.coef_
print(w)
b = lr.intercept_
b
 

x_poly

#一元多项式回归模型,建立一个变量与房价之间的预测模型,并图形化显示。
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree=2)
x_poly = poly.fit_transform(x)

lp = LinearRegression()
lp.fit(x_poly,y)
y_poly_pred = lp.predict(x_poly)

plt.scatter(x,y)
plt.plot(x,y_poly_pred,'r')
plt.show()


from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree=2)
x_poly = poly.fit_transform(x)

lrp = LinearRegression()
lrp.fit(x_poly,y)
plt.scatter(x,y)
plt.scatter(x,y_pred)
plt.scatter(x,y_poly_pred)   #多项回归
plt.show()