import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
from sklearn.preprocessing import MinMaxScaler

# 读取Excel文件
data = pd.read_excel(r'D:\pythonProject3\会员信息\附件二:会员信息数据.xlsx')
data.dropna(inplace=True)

# 定义自变量和因变量
X = data[['信誉值均值', '预订任务限额均值', '商品周围商品个数', '会员点个数']]
y = data['任务标价']

# 填充缺失值
X.fillna(X.mean(), inplace=True)
y.fillna(y.mean(), inplace=True)

# 数据归一化
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)

# 创建线性回归模型
model = LinearRegression()

# 训练模型
model.fit(X_scaled, y)

# 输出方程系数
coefficients = model.coef_
intercept = model.intercept_
print('方程:y = {}x1 + {}x2 + {}x3 + {}x4 + {}'.format(coefficients[0], coefficients[1], coefficients[2], coefficients[3], intercept))

# 预测值
y_pred = model.predict(X_scaled)

# 求拟合优度
r2 = r2_score(y, y_pred)
print('拟合优度:', r2)

# --- 删除'预订任务限额均值'自变量后重新拟合 ---
X_new = X.drop('预订任务限额均值', axis=1)

# 数据归一化
scaler = MinMaxScaler()
X_new_scaled = scaler.fit_transform(X_new)

# 创建线性回归模型
model_new = LinearRegression()

# 训练模型
model_new.fit(X_new_scaled, y)

# 输出方程系数
coefficients_new = model_new.coef_
intercept_new = model_new.intercept_
print('方程:y = {}x1 + {}x2 + {}x3 + {}'.format(coefficients_new[0], coefficients_new[1], coefficients_new[2], intercept_new))

# 预测值
y_pred_new = model_new.predict(X_new_scaled)

# 求拟合优度
r2_new = r2_score(y, y_pred_new)
print('删除变量后的拟合优度:', r2_new)
Python线性回归模型预测任务标价

原文地址: https://www.cveoy.top/t/topic/fzQW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录