基于机器学习预测员工流失的情况

简介: 基于机器学习预测员工流失的情况

背景

员工流失对于任何组织都是一个严重的问题,它可能导致生产力下降和成本增加。通过分析员工流失的数据,并使用机器学习模型来预测员工是否会流失,我们可以采取预防性措施,尽量减少员工的流失。

数据探索性分析(EDA)

首先,让我们加载数据并进行一些基本的探索性分析

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 加载数据
data = pd.read_csv('employee.csv')

# 探索性数据分析
print(data.info())
print(data.describe())

# 可视化员工流失情况
plt.figure(figsize=(8, 5))
sns.countplot(x='Attrition', data=data)
plt.title('Attrition Distribution')
plt.show()

# 可视化不同部门的流失情况
plt.figure(figsize=(10, 6))
sns.countplot(x='Department', hue='Attrition', data=data)
plt.title('Attrition in Different Departments')
plt.show()

# 可视化年龄与流失的关系
plt.figure(figsize=(10, 6))
sns.boxplot(x='Attrition', y='Age', data=data)
plt.title('Age vs Attrition')
plt.show()

数据预处理

接下来,我们对数据进行预处理,包括去除无关的特征、对分类变量进行编码以及特征缩放

from sklearn.preprocessing import StandardScaler

# 去除无关特征并进行编码
data.drop(['EmployeeCount', 'EmployeeNumber', 'Over18', 'StandardHours'], axis=1, inplace=True)
data['Attrition'] = data['Attrition'].replace({'No': 0, 'Yes': 1})
data_encoded = pd.get_dummies(data, drop_first=True)

# 特征缩放
features_to_scale = ['Age', 'DailyRate', 'DistanceFromHome', 'HourlyRate', 'MonthlyIncome', 'MonthlyRate',
                     'NumCompaniesWorked', 'PercentSalaryHike', 'TotalWorkingYears', 'YearsAtCompany',
                     'YearsInCurrentRole', 'YearsSinceLastPromotion', 'YearsWithCurrManager']
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data_encoded[features_to_scale])

模型构建与评估

现在,我们将数据集拆分为训练集和测试集,并构建逻辑回归模型和随机森林模型来预测员工的流失情况。

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report

# 划分数据集
X = data_encoded.drop('Attrition', axis=1)
y = data_encoded['Attrition']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 构建逻辑回归模型
logistic_model = LogisticRegression()
logistic_model.fit(X_train, y_train)
y_pred_logistic = logistic_model.predict(X_test)
accuracy_logistic = accuracy_score(y_test, y_pred_logistic)

# 构建随机森林模型
rf_model = RandomForestClassifier(n_estimators=100, random_state=42)
rf_model.fit(X_train, y_train)
y_pred_rf = rf_model.predict(X_test)
accuracy_rf = accuracy_score(y_test, y_pred_rf)

# 输出结果
print("Logistic Regression Accuracy:", accuracy_logistic)
print("Logistic Regression Classification Report:")
print(classification_report(y_test, y_pred_logistic))

print("\nRandom Forest Accuracy:", accuracy_rf)
print("Random Forest Classification Report:")
print(classification_report(y_test, y_pred_rf))

结论

通过逻辑回归和随机森林模型,我们成功地预测了员工的流失情况。通过分析模型的准确率和分类报告,我们可以看到随机森林模型相对于逻辑回归模型有更好的预测效果,因为它能够更好地处理复杂的数据关系。

相关文章
|
14天前
|
机器学习/深度学习 数据采集 算法
【阿旭机器学习实战】【35】员工离职率预测---决策树与随机森林预测
【阿旭机器学习实战】【35】员工离职率预测---决策树与随机森林预测
|
1月前
|
机器学习/深度学习 数据采集 算法
数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度
数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
Python中用PyTorch机器学习神经网络分类预测银行客户流失模型
Python中用PyTorch机器学习神经网络分类预测银行客户流失模型
|
1月前
|
机器学习/深度学习 数据采集 自然语言处理
编写员工聊天监控软件的机器学习模块:Scikit-learn在行为分析中的应用
随着企业对员工行为监控的需求增加,开发一种能够自动分析员工聊天内容并检测异常行为的软件变得愈发重要。本文介绍了如何使用机器学习模块Scikit-learn来构建这样一个模块,并将其嵌入到员工聊天监控软件中。
184 3
|
1月前
|
机器学习/深度学习 存储 数据采集
控制员工上网软件的机器学习应用
在现代企业管理中,对员工上网行为进行有效监控成为了一项必不可少的任务。为了实现更加智能、精准的控制,机器学习技术应运而生。本文将介绍如何利用机器学习应用来控制员工上网软件,并通过代码示例展示其实际操作。
210 0
|
1月前
|
机器学习/深度学习 网络安全 Python
【Python机器学习】决策树、逻辑回归、神经网络等模型对电信用户流失分类实战(附源码和数据集)
【Python机器学习】决策树、逻辑回归、神经网络等模型对电信用户流失分类实战(附源码和数据集)
67 0
|
7月前
|
机器学习/深度学习 监控 TensorFlow
利用TensorFlow实现机器学习代码以用防止员工泄密软件检测员工泄密行为
随着信息安全的重要性日益增加,保护敏感数据免受员工泄密的风险成为组织的首要任务之一。在本文中,我们将讨论如何使用TensorFlow,一种强大的开源机器学习框架,来实现防止员工泄密软件。我们将演示如何编写代码来监控员工的行为,检测潜在的泄密行为,并在必要时采取自动化措施。这一切将有助于加强数据安全,防止敏感信息泄露。
189 2
|
机器学习/深度学习
【阿旭机器学习实战】【24】信用卡用户流失预测实战
【阿旭机器学习实战】【24】信用卡用户流失预测实战
【阿旭机器学习实战】【24】信用卡用户流失预测实战
|
4天前
|
机器学习/深度学习 人工智能 算法
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂', '甲虫', '蝴蝶', '蝉', '蜻蜓', '蚱蜢', '蛾', '蝎子', '蜗牛', '蜘蛛')进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一张昆虫图片识别其名称。
113 7
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
|
5天前
|
机器学习/深度学习 人工智能 算法
算法金 | 统计学的回归和机器学习中的回归有什么差别?
**摘要:** 统计学回归重在解释,使用线性模型分析小数据集,强调假设检验与解释性。机器学习回归目标预测,处理大数据集,模型复杂多样,关注泛化能力和预测误差。两者在假设、模型、数据量和评估标准上有显著差异,分别适用于解释性研究和预测任务。
33 8
算法金 | 统计学的回归和机器学习中的回归有什么差别?