sklearn实现线性回归

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法
简单说:可以根据两个或一个变量,预测另一个变量的值
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegression
data = pd.read_excel('generated_data.xlsx')
s = data.head()
#print(s)
x = data.loc[:,'x']
y = data.loc[:,'y']
#matplotlib可视化
plt.figure()
plt.scatter(x,y)
#plt.show()

lr_model = LinearRegression()
x = np.array(x)
x=x.reshape(-1,1) #转2D数组
y = np.array(y)
y = y.reshape(-1,1) #转2D数组

lr_model.fit(x,y)
#yy = lr_model.predict(x)
#预测x == 11 时 , y的值
y11 = lr_model.predict([[11]])
print(y11)##[[27.]]

 

 

 

#多因子预测 

task2_data.csv

 

 

 

 

 

"""以面积、人均收入、平均房龄为输入变量,建立多因子模型,评估模型表现
预测面积=150, 人均收入=60000, 平均房龄=5的合理房价"""
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error,r2_score
data = pd.read_csv('task2_data.csv')

# fig = plt.figure(figsize=(20,5))
# fig1 = plt.subplot(131)
# plt.scatter(data.loc[:,'面积'],data.loc[:,'价格'])
# plt.title('Price VS Size')
#plt.show()
#X y再次赋值
X = data.drop(['价格'],axis=1)
y = data.loc[:,'价格']
X.head(100)

#数据预处理
X = np.array(X)

y = np.array(y)
y = y.reshape(-1,1)
##建立多因子回归模型 并且训练
model_multi = LinearRegression()
print('X',X)
model_multi.fit(X,y)
#多因子模型的预测
y_predict_multi = model_multi.predict(X)
#通过计算模型准确率与r2_score对模型进行评估
MSE_multi = mean_squared_error(y,y_predict_multi)
R2_multi = r2_score(y,y_predict_multi)


#预测面积=150, 人均收入=60000, 平均房龄=5的合理房价 = 1037640.66671137
X_test = np.array([[150,60000,5]])
y_test_predict = model_multi.predict(X_test)
print(MSE_multi,R2_multi,y_test_predict)

 

posted @ 2022-05-15 16:36  freedom/cn  阅读(146)  评论(0编辑  收藏  举报