完整代码与注释:回归问题预测——商品数据处理

commodity-data-processing

这是关于招聘数据科学家的问题。需要创建一个模型来预测候选人在培训后是否会留在公司工作。这个任务需要使用候选人的个人信息和经历数据来预测他们留在公司工作的概率。同时,还需要解释模型如何影响候选人的决定。

数据的特征:

  • enrollee_id: 候选人的唯一ID
  • city: 城市代码
  • city_development_index: 城市的发展指数(已缩放)
  • gender: 候选人的性别
  • relevent_experience: 候选人的相关经验
  • enrolled_university: 如果有,候选人所注册的大学课程类型
  • education_level: 候选人的教育水平
  • major_discipline: 候选人的教育专业学科
  • experience: 候选人的总工作经验年限
  • company_size: 目前雇主公司的员工数量
  • company_type: 目前雇主的公司类型
  • last_new_job: 上一份工作和目前工作之间的年份差
  • training_hours: 完成的培训小时数
  • target: 0 – 不寻找工作变动,1 – 寻找工作变动

问题陈述:

  • 预测候选人会为公司工作的概率
  • 解释模型,阐明哪些特征影响了候选人的决定

在这里插入图片描述

df = pd.read_csv('data.csv')
import matplotlib.pyplot as plt
import seaborn as sns

# 绘制一个性别分布的柱状图。
gender_counts = df['gender'].value_counts()
plt.figure(figsize=(4, 3))
sns.barplot(x=gender_counts.index, y=gender_counts.values)
plt.xlabel('Gender')
plt.ylabel('Count')
plt.title('Gender Distribution')
plt.show()

# 绘制一个教育水平分布的柱状图。
education_level_counts = df['education_level'].value_counts()
plt.figure(figsize=(4, 3))
sns.barplot(x=education_level_counts.index, y=education_level_counts.values)
plt.xlabel('education_level')
plt.ylabel('Count')
plt.title('education_level Distribution')
plt.show()

在这里插入图片描述
在这里插入图片描述

以下是对每个特征进行编码的处理:

  • ‘gender’特征:将缺失值填充为0,然后使用字典映射将’Male’、'Female’和’Other’分别替换为1、2和3。
  • 'relevent_experience’特征:使用字典映射将’Has relevent experience’和’No relevent experience’分别替换为1和2。
  • ‘enrolled_university’特征:将缺失值填充为0,然后使用字典映射将’no_enrollment’、'Full time course’和’Part time course’分别替换为1、2和3。
  • ‘education_level’特征:将缺失值填充为0,然后使用字典映射将’Graduate’、‘Masters’、‘High School’、'Phd’和’Primary School’分别替换为1、2、3、4和5。
  • ‘major_discipline’特征:将缺失值填充为0,然后使用字典映射将’STEM’、‘Business Degree’、‘Arts’、‘Humanities’、'No Major’和’Other’分别替换为 1、2、3、4、5和6。
  • ‘experience’特征:将缺失值填充为0,然后使用字典映射将’>20’替换为25,'<1’替换为0.5,并将数据类型转换为浮点型。
  • ‘company_size’特征:使用字典映射将’<10’、‘10/49’、‘50-99’、‘100-500’、‘500-999’、‘1000-4999’、'5000-9999’和’10000+'分别替换为5、30、75、- 300、750、3000、7500和15000,并将缺失值填充为0。
  • ‘company_type’特征:使用字典映射将’Pvt Ltd’、‘Funded Startup’、‘Public Sector’、‘Early Stage Startup’、'NGO’和’Other’分别替换为1、2、3、4、5和6,并将缺失值填充为0。
  • ‘last_new_job’特征:使用字典映射将’>4’替换为5,'never’替换为0,并将缺失值填充为0,并将数据类型转换为浮点型。
# 处理'gender'特征
df['gender'].fillna(0, inplace=True) # 将缺失值填充为0
df['gender'].replace({
   'Male': 1, 'Female': 2, 'Other': 3}, inplace=True) # 将'Male'替换为1,'Female'替换为2,'Other'替换为3

# 处理'relevent_experience'特征
df['relevent_experience'].replace({
   'Has relevent experience': 1, 'No relevent experience': 2}, inplace=True) # 将'Has relevent experience'替换为1,'No relevent experience'替换为2

# 处理'enrolled_university'特征
df['enrolled_university'].fillna(0, inplace=True) # 将缺失值填充为0
df['enrolled_university'].replace({
   'no_enrollment': 1, 'Full time course': 2, 'Part time course': 3}, inplace=True) # 将'no_enrollment'替换为1,'Full time course'替换为2,'Part time course'替换为3

# 处理'education_level'特征
df['education_level'].fillna(0, inplace
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人工智能技术小白修炼手册

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值