你给我的代码无法运行,请进行自我修复
时间: 2023-12-27 11:03:15 浏览: 23
很抱歉,我没有看到你的文件名,因此代码中的变量名不匹配。以下是修改后的代码,你可以尝试运行它:
```python
import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
import numpy as np
# 阶段三 数据分析
file_name = '深圳2023年求职信息.xlsx'
df = pd.read_excel(file_name)
data = df.loc[:, ['经验要求', '文凭要求', '薪资待遇_平均月薪']]
# 对于分类变量,使用LabelEncoder转换
le = LabelEncoder()
data['经验要求'] = le.fit_transform(data['经验要求'])
data['文凭要求'] = le.fit_transform(data['文凭要求'])
# 将数据分为特征X和目标y
X = data.drop('薪资待遇_平均月薪', axis=1)
y = data['薪资待遇_平均月薪']
# 将数据分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练线性回归模型
reg = LinearRegression().fit(X_train, y_train)
# 使用模型进行预测
y_pred = reg.predict(X_test)
df['预测薪资待遇_平均月薪'] = reg.predict(X)
# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
# 将结果保存到Excel文件中
df.to_excel('深圳2023年求职信息预测.xlsx')
# 输出预测结果
mape = np.mean(np.abs((y_test - y_pred) / y_test)) * 100
print("MAPE:", mape)
# 展示预测结果
predictions = pd.DataFrame({
'经验要求': X['经验要求'],
'文凭要求': X['文凭要求'],
'薪资待遇_平均月薪': y,
'预测薪资待遇_平均月薪': df['预测薪资待遇_平均月薪']
})
print(predictions)
```
请注意,我将数据文件名设置为“深圳2023年求职信息.xlsx”,如果你的文件名不同,需要相应地修改文件名。