繁体   English   中英

使用get_dummies在Python中进行分类数据评估

[英]Categorical Data evaluation in Python with get_dummies

我想用决策树评估Python中的分类数据。 我想使用分类数据并使用装箱来创建分类标签。 我一定要吗? 问题是get_dummies返回的数据帧的长度与给定的值不同。 它比原始数据短两行。 以前,我尝试使用labelencode,但没有完成。 我尝试了get_dummies形式的熊猫,它对我来说更容易缝。

我检查了get_dummies函数的引用,并搜索了问题,但找不到长度较短的原因。

进行装箱:

est = bine(n_bins=50, encode='ordinal', strategy='kmeans')
cat_labels = est.fit_transform(np.array(quant_labels).reshape(-1, 1))

提取类别数据(我必须这样做):

category = rd.select_dtypes(exclude=['number']).astype("category")
category = category.replace(math.nan, "None")
category = category.replace(0, "None")

准备拆分:

one_hot_features = pd.get_dummies(category[1:-1])
X_train, X_test, y_train, y_test = train_test_split(one_hot_features, cat_labels, test_size = 0.6, random_state = None)

错误是:

ValueError: Found input variables with inconsistent number of samples: [1458, 1460]

样本的正确大小为one_hot编码的样本数为两个。 为什么会这样呢?

在对数据进行编码时,请使用category[1:-1] 这将对从第二个元素到第二个元素到最后一个元素的所有元素进行编码。

说明:

1)索引是从零开始的,因此1是第二项的索引。
2)索引-1表示倒数第二个元素。

解决方案:将您的行更改为one_hot_features = pd.get_dummies(category[:])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM