为了账号安全,请及时绑定邮箱和手机立即绑定

将分类列添加到预测模型中

将分类列添加到预测模型中

墨色风雨 2021-08-24 15:37:07
我得到了一个客户数据框和有关他们活动的信息,我建立了一个模型来预测他们是否购买产品。我的标签是一列“did_buy”,如果客户购买,则分配 1,否则分配 0。我的模型考虑了数字列,但我还想将分类列添加到预测模型中,但我不确定如何转换它们并在我的 X 列车中使用它们。这是我的数据框列的一瞥:Company_Sector         Company_size  DMU_Final  Joining_Date  CountryFinance and Insurance       10        End User   2010-04-13   FrancePublic Administration       1         End User   2004-09-22   France还有一些列:linkedin_shared_connections   online_activity  did_buy   Sale_Date            11                        65           1      2016-05-23            13                        100          1      2016-01-12
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

让我建议您首先确定哪些分类变量是有序的(订单计数,例如好、非常好、坏等),哪些是名义变量(顺序无关紧要,例如颜色)。对于序数,您可以使用 map 如下:


    Category

0   Excellent

1   Excellent

2   Bad

3   Good

4   Bad

5   Very Good

6   Very Bad


df.Category = df.Categoy.map({'Excellent':5, 'Very Good':4, 

                              'Good':3, 'Fair':2, 'Bad':1, 'Very Bad':0})


    Category

0   5

1   5

2   1

3   3

4   1

5   4

6   0

对于名义变量,您可以实施虚拟变量方法。示例:假设您的分类变量有两个值“Native”和“Foreign”。您可以创建一个名为“本机”的列,其中 1 表示本机,0 表示外来。可以为多个类别实施。


data = pd.DataFrame({"Origin": ['Native', 'Native', 'Foreign', 'Native', 'Foreign']})


    Origin

0   Native

1   Native

2   Foreign

3   Native

4   Foreign


data['Native'] = pd.get_dummies(data['Origin'], drop_first=True)

data.drop("Origin", axis = 1, inplace = True)

这将导致:


    Native

0   1

1   1

2   0

3   1

4   0


查看完整回答
反对 回复 2021-08-24
  • 2 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信