簡體   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