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)