不同职业工资数据集knn预测python
时间: 2023-07-26 22:22:13 浏览: 176
好的,我们可以使用Python中的scikit-learn库来实现KNN算法进行工资预测。下面是一个简单的步骤:
1. 导入需要的库和数据集:
```python
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsRegressor
data = pd.read_csv("salary.csv") # 读入数据集
```
2. 对数据集进行处理:
```python
# 将职业名称转换成数值标签
data['Job'] = pd.factorize(data['Job'])[0]
# 将数据集分为训练集和测试集
X = data.drop('Salary', axis=1)
y = data['Salary']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
3. 创建和训练模型:
```python
# 创建KNN模型
knn = KNeighborsRegressor(n_neighbors=5)
# 训练模型
knn.fit(X_train, y_train)
```
4. 使用模型进行预测:
```python
# 使用模型进行预测
y_pred = knn.predict(X_test)
# 计算预测结果的R2分数
r2_score = knn.score(X_test, y_test)
print("R2分数:", r2_score)
```
注意:在上面的代码中,我们将职业名称转换成了数值标签,这是因为KNN算法需要使用数值数据。如果你的数据集中已经有了数值标签,那么就不需要执行这一步了。
另外,KNN算法的性能很大程度上取决于选择的K值。在上面的代码中,我们将K值设为了5,你可以根据你的数据集进行调整。
阅读全文