用python编程实现基于随机森林算法的离职预测并使用matplotlib可视化简单点
时间: 2023-11-22 15:54:01 浏览: 98
Python实现的随机森林算法与简单总结
5星 · 资源好评率100%
好的,下面是代码实现:
```python
# 导入库
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('HR.csv')
# 数据预处理
data['salary'] = data['salary'].map({'low': 0, 'medium': 1, 'high': 2})
data['department'] = pd.factorize(data['department'])[0]
# 划分特征和标签
X = data.drop(['left'], axis=1)
y = data['left']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 随机森林分类器
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
# 预测并计算准确率
y_pred = rf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
# 可视化特征重要性
importances = rf.feature_importances_
features = X.columns
indices = np.argsort(importances)[::-1]
plt.figure(figsize=(10, 6))
plt.title("Feature Importance")
plt.bar(range(len(indices)), importances[indices], color='g', align='center')
plt.xticks(range(len(indices)), features[indices], rotation=90)
plt.tight_layout()
plt.show()
```
这里使用的数据集是 HR.csv,其中包含员工的一些基本信息和是否离职的标签。首先读取数据,然后对数据进行预处理,将薪资和部门两个离散变量转换成数字。
然后划分特征和标签,并将数据集划分成训练集和测试集。接下来使用随机森林分类器进行训练和预测,并计算准确率。
最后,使用 matplotlib 可视化特征重要性,可以看出员工满意度、工作时间和年龄是影响员工是否离职的重要因素。
阅读全文