![](/img/trans.png)
[英]How can I create a dictionary between two columns within a pandas dataframe if each column has more than one value per row?
[英]How can I encode features with more than one value per column? MultiDictVectorizer needed?
我在sklearn中使用了一些功能,我遇到了一個問題。 如果您的數據可以編碼為每個項目的一個dict鍵,則DictVectorizer可以正常工作。 如果您的商品可以包含同一列的兩個或更多值,該怎么辦? 例如,DictVectorizer可以在這樣的項目上正常工作:
{'a': 'b', 'b': 'c'}
但是這樣的事情呢,每列有多個值?
{'a': ['b','c'], 'b': 'd'}
單熱編碼的策略仍然適用,你只需要兩列...... a = b和a = c。 據我所知,沒有這樣的矢量化器存在! 在這種情況下應該做什么? 我需要創建自己的MultiDictVectorizer嗎?
在發布之前,我在博文中寫了這篇文章。
這種情況至少有兩種快速解決方案:
創建一個新值,表示具有兩個聚合值的可能性
{'a': 'bc', 'b': 'd'}
或給它另一個名字,即'bc'-->'e'
每次采用其中一個值時復制樣本
{'a': 'b', 'b': 'd'}
和{'a': 'c', 'b': 'd'}
但當然這很大程度上取決於你的問題的背景(案例2:“復制”具有不同表現形式的樣本是否正確?案例1:在概念上是否可以接受該特征的另一個新值?)。 例如,我甚至不知道該多值特征是否對應於N/A
情況。
我已經看到了你的github提議,所以我明白這不是你想要的,但以防萬一它能省你的努力。
DictVectorizer無法處理每個鍵的多個值,因此我將此功能添加到其中。 如果拉動被接受,這將是sklearn的一部分。 如果沒有,我將在MultiDictVectorizer中繼承DictVectorizer,並將為此類發布一個包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.