如何将连续变量转换为分类变量?

请用这个给我指出正确的方向。如何将包含连续变量的列转换为离散变量?我有金融工具的价格,我正试图将其转换为某种分类价值。我以为我可以做到以下几点。

labels = df['PRICE'].astype('category').cat.categories.tolist()
replace_map_comp = {'PRICE' : {k: v for k,v in zip(labels,list(range(1,len(labels)+1)))}}
print(replace_map_comp)

但是,当我尝试对数据子集运行 RandomForestClassifier 时,出现错误。

from sklearn.ensemble import RandomForestClassifier
features = np.array(['INTEREST',
'SPREAD',
'BID',
'ASK',
'DAYS'])
clf = RandomForestClassifier()
clf.fit(df[features], df1['PRICE'])

错误信息如下: ValueError: Unknown label type: 'continuous'

我很确定这很接近,但这里肯定有一些东西。

下面的代码更新:

# copy only numerics to new DF
df1 = df.select_dtypes(include=[np.number])

from sklearn import linear_model
features = np.array(['INTEREST',
'SPREAD',
'BID',
'ASK',
'DAYS'])
reg = linear_model.LinearRegression()
reg.fit(df1[features], df1['PRICE'])

# problems start here...
importances = clf.feature_importances_
sorted_idx = np.argsort(importances)

padding = np.arange(len(features)) + 0.5
plt.barh(padding, importances[sorted_idx], align='center')
plt.yticks(padding, features[sorted_idx])
plt.xlabel("Relative Importance")
plt.title("Variable Importance")
plt.show()

错误:AttributeError:'LinearRegression' 对象没有属性 'feature_importances_'

以下概念来自这里:

http://blog.yhat.com/tutorials/5-Feature-Engineering.html

仅供参考,我尝试了 one-hot 编码,代码转换使列变得太大,我遇到了错误。也许处理这个问题的方法是取一小部分数据。有 250k 行,我猜也许 100k 行应该足以代表整个数据集。也许这就是要走的路。只是在这里大声思考。

贾拉德

Pandas 有一个cut功能,可以满足您的需求:

import pandas as pd
import numpy as np
from scipy.stats import norm
from sklearn.ensemble import RandomForestClassifier
from sklearn.preprocessing import LabelEncoder

label_encoder = LabelEncoder()
n_bins = 5
df = pd.DataFrame(data=norm.rvs(loc=500, scale=50, size=100),
                  columns=['PRICE'])
y = label_encoder.fit_transform(pd.cut(df['PRICE'], n_bins, retbins=True)[0])
rfc = RandomForestClassifier(n_estimators=100, verbose=2)
rfc.fit(df[['PRICE']], y)

这是一个示例示例。首先要知道有一百种不同的方法可以做到这一点,所以这不一定是“正确”的方法;这只是一种方式。

主要思想:使用 Pandascut函数为连续数据创建桶。桶的数量由您决定。我选择n_bins5这个例子。

有了垃圾箱后,它们可以转换为带有 sklearn 的LabelEncoder(). 这样,您就可以更轻松地引用这些类。它就像您的课程的存储系统,因此您可以跟踪它们。label_encoder.classes_看的类。

完成这些步骤后,y将如下所示:

array([1, 2, 2, 0, 2, 2, 0, 1, 3, 1, 1, 2, 1, 4, 4, 2, 3, 1, 1, 3, 2, 3,
       2, 2, 2, 0, 2, 2, 4, 1, 3, 2, 1, 3, 3, 2, 1, 4, 3, 1, 1, 4, 2, 3,
       3, 2, 1, 1, 3, 4, 3, 3, 3, 2, 1, 2, 3, 1, 3, 1, 2, 0, 1, 1, 2, 4,
       1, 2, 2, 2, 0, 1, 0, 3, 3, 4, 2, 3, 3, 2, 3, 1, 3, 4, 2, 2, 2, 0,
       0, 0, 2, 2, 0, 4, 2, 3, 2, 2, 2, 2])

您现在已将连续数据转换为类,现在可以传递到RandomForestClassifier().

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将连续变量分组到范围r

来自分类Dev

如何使用ggplot表示分类变量与连续变量?

来自分类Dev

如何将分类变量转换为其频率。

来自分类Dev

将连续变量转换为二进制变量

来自分类Dev

Gurobi,如何将连续变量更改为二进制变量

来自分类Dev

Gurobi,如何将连续变量更改为二进制变量

来自分类Dev

如何将连续变量映射到 plotnine 中的颜色?

来自分类Dev

如何使用双数来计算连续变量和分类变量之间的相关性?

来自分类Dev

如何使用双数来计算连续变量和分类变量之间的相关性?

来自分类Dev

如何将for循环转换为变量?

来自分类Dev

如何将变量转换为度?

来自分类Dev

如何将 imagegif() 转换为变量?

来自分类Dev

如何将javascript变量转换为Razor变量?

来自分类Dev

如何将tensorflow变量转换为python变量?

来自分类Dev

如何将双精度变量转换为整数变量?

来自分类Dev

JAVA:如何将String变量转换为Double变量?

来自分类Dev

将分类变量转换为数字PowerQuery

来自分类Dev

将分类变量转换为数字PowerQuery

来自分类Dev

将分类变量转换为数字PowerQuery

来自分类Dev

将分类变量转换为数字PowerQuery

来自分类Dev

R:从基于连续变量的分类变量创建新的分类变量

来自分类Dev

在 R 中将连续变量转换为离散值(字母数字)。范围是字母数字

来自分类Dev

熊猫groupby将非连续变量视为不同变量?

来自分类Dev

如何将php heredoc转换为javascript变量?

来自分类Dev

如何将变量值转换为整数?

来自分类Dev

如何将openCv CvScalar变量转换为Java?

来自分类Dev

如何将SQL结果转换为STRING变量?

来自分类Dev

如何将函数变量转换为div id名称?

来自分类Dev

如何将变量从扩展类转换为其父类

Related 相关文章

  1. 1

    如何将连续变量分组到范围r

  2. 2

    如何使用ggplot表示分类变量与连续变量?

  3. 3

    如何将分类变量转换为其频率。

  4. 4

    将连续变量转换为二进制变量

  5. 5

    Gurobi,如何将连续变量更改为二进制变量

  6. 6

    Gurobi,如何将连续变量更改为二进制变量

  7. 7

    如何将连续变量映射到 plotnine 中的颜色?

  8. 8

    如何使用双数来计算连续变量和分类变量之间的相关性?

  9. 9

    如何使用双数来计算连续变量和分类变量之间的相关性?

  10. 10

    如何将for循环转换为变量?

  11. 11

    如何将变量转换为度?

  12. 12

    如何将 imagegif() 转换为变量?

  13. 13

    如何将javascript变量转换为Razor变量?

  14. 14

    如何将tensorflow变量转换为python变量?

  15. 15

    如何将双精度变量转换为整数变量?

  16. 16

    JAVA:如何将String变量转换为Double变量?

  17. 17

    将分类变量转换为数字PowerQuery

  18. 18

    将分类变量转换为数字PowerQuery

  19. 19

    将分类变量转换为数字PowerQuery

  20. 20

    将分类变量转换为数字PowerQuery

  21. 21

    R:从基于连续变量的分类变量创建新的分类变量

  22. 22

    在 R 中将连续变量转换为离散值(字母数字)。范围是字母数字

  23. 23

    熊猫groupby将非连续变量视为不同变量?

  24. 24

    如何将php heredoc转换为javascript变量?

  25. 25

    如何将变量值转换为整数?

  26. 26

    如何将openCv CvScalar变量转换为Java?

  27. 27

    如何将SQL结果转换为STRING变量?

  28. 28

    如何将函数变量转换为div id名称?

  29. 29

    如何将变量从扩展类转换为其父类

热门标签

归档