本文使用Jupyter-notebook作为集成开发环境,使用Scikit-learn库搭建线性回归模型进行房价预测,Scikit–learn具有三大优点:
官网:https://scikit-learn.org/stable/index.html
基于task2_data.csv数据,建立多因子线性回归模型
首先加载task2_data.csv数据并展示部分数据,代码如下:
#数据加载
import pandas as pd
import numpy as np
data = pd.read_csv('task2_data.csv')
data.head(10)
对数据进行可视化代码如下:
from matplotlib import pyplot as plt
fig = plt.figure(figsize=(20,5))
fig1 = plt.subplot(131)
plt.scatter(data.loc[:,'面积'],data.loc[:,'价格'])
plt.title('Price VS Size')
fig2 = plt.subplot(132)
plt.scatter(data.loc[:,'人均收入'],data.loc[:,'价格'])
plt.title('Price VS Income')
fig3 = plt.subplot(133)
plt.scatter(data.loc[:,'平均房龄'],data.loc[:,'价格'])
plt.title('Price VS House_age')
plt.show()
将上述加载的数据转化为numpy格式
#X y再次赋值
X = data.drop(['价格'],axis=1)
y = data.loc[:,'价格']
X.head()
#数据预处理
X = np.array(X)
y = np.array(y)
y = y.reshape(-1,1)
print(X.shape,y.shape)
建立多因子回归模型 并且训练
#建立多因子回归模型 并且训练
from sklearn.linear_model import LinearRegression
model_multi = LinearRegression()
model_multi.fit(X,y)
进行多因子模型的预测
#多因子模型的预测
y_predict_multi = model_multi.predict(X)
print(y_predict_multi)
通过计算模型准确率与r2_score对模型进行评估
from sklearn.metrics import mean_squared_error,r2_score
MSE_multi = mean_squared_error(y,y_predict_multi)
R2_multi = r2_score(y,y_predict_multi)
print(MSE_multi)
print(R2_multi)
最后预测面积=150, 人均收入=60000, 平均房龄=5的合理房价
#预测面积=150, 人均收入=60000, 平均房龄=5的合理房价
X_test = np.array([[150,60000,5]])
y_test_predict = model_multi.predict(X_test)
print(y_test_predict)
房价数据与完整代码github地址:https://github.com/15009824714/House-price-forecast