使用线性回归和决策树算法进行薪资预测

以下是可以开始的步骤:

Step 1: 导入所需库

首先我们需要导入一些常用的Python库,如NumPy,Pandas,Scikit-learn等。代码如下所示:

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import train_test_split

Step 2: 准备数据集

我们需要一个数据集,它必须包含以下特征:工作经验,学历,公司规模等等。在这个示例中,我们将从CSV文件中读取数据。代码如下所示:

data = pd.read_csv(salary.csv)

其中,salary.csv’是保存在本地的数据集文件名。

Step 3: 数据预处理

接下来我们需要对数据进行清理和预处理。这包括删除任何无效或缺失值,转换类别变量为数值变量,创建哑变量并将所有特征放在一个矩阵中。代码如下所示:

data.dropna(inplace=True)

X = pd.get_dummies(data[[experience, education, company_size]])
y = data[salary].values

其中,pd.get_dummies()函数可将分类变量转换为哑变量。

Step 4: 模型训练

我们将拆分数据集,这使我们可以将数据集分为训练集和测试集,以评估模型的准确性。代码如下所示:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

linReg = LinearRegression()
linReg.fit(X_train, y_train)

decTree = DecisionTreeRegressor()
decTree.fit(X_train, y_train)

其中,train_test_split()函数将把数据集拆分为70%的训练集和30%的测试集,以进行后面的评估。

Step 5: 模型评估

在训练过程完成后,我们需要评估模型的表现。我们使用决定系数(R²)和均方误差(MSE)来评估线性回归和决策树回归模型的效果。代码如下所示:

from sklearn.metrics import r2_score, mean_squared_error

y_pred_linReg = linReg.predict(X_test)
r2_linReg = r2_score(y_test, y_pred_linReg)
mse_linReg = mean_squared_error(y_test, y_pred_linReg)

y_pred_decTree = decTree.predict(X_test)
r2_decTree = r2_score(y_test, y_pred_decTree)
mse_decTree = mean_squared_error(y_test, y_pred_decTree)

print("Linear Regression - R²: {:.2f}, MSE: {:.2f}".format(r2_linReg, mse_linReg))
print("Decision Tree Regressor - R²: {:.2f}, MSE: {:.2f}".format(r2_decTree, mse_decTree))

线性回归和决策树算法之间的最终结果将显示在屏幕上。

经验分享 程序员 微信小程序 职场和发展