使用 Python 进行线性回归:寻找最佳拟合方程并评估拟合优度
本教程将指导您使用 Python 进行线性回归分析,并找到最佳拟合方程。我们将学习如何读取数据、进行预处理、拟合模型、预测结果以及评估拟合优度。
首先,我们需要导入所需的库和模块:
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score
然后,我们读取数据并进行预处理:
data = pd.read_excel(r'D:\pythonProject3\会员信息\附件二:会员信息数据.xlsx')
data.dropna(inplace=True)
X = data[['信誉值均值', '预订任务限额均值', '商品周围商品个数', '会员点个数']]
y = data['任务标价']
接下来,我们从中随机取样 500 组数据用来拟合:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=500, random_state=0)
然后,我们使用线性回归模型进行拟合:
model = LinearRegression()
model.fit(X_train, y_train)
接着,我们使用拟合模型对测试数据进行预测,并计算拟合优度:
y_pred = model.predict(X_test)
r2 = r2_score(y_test, y_pred)
最后,我们找到拟合度最高的方程并输出:
equation = f'y = {model.intercept_}'
for i, coef in enumerate(model.coef_):
equation += f' + {coef} * {X.columns[i]}'
print(equation)
print('拟合优度:', r2)
完整的代码如下:
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score
data = pd.read_excel(r'D:\pythonProject3\会员信息\附件二:会员信息数据.xlsx')
data.dropna(inplace=True)
X = data[['信誉值均值', '预订任务限额均值', '商品周围商品个数', '会员点个数']]
y = data['任务标价']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=500, random_state=0)
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
r2 = r2_score(y_test, y_pred)
equation = f'y = {model.intercept_}'
for i, coef in enumerate(model.coef_):
equation += f' + {coef} * {X.columns[i]}'
print(equation)
print('拟合优度:', r2)
运行以上代码,即可得到拟合度最高的方程和拟合优度。
原文地址: https://www.cveoy.top/t/topic/fzS1 著作权归作者所有。请勿转载和采集!