如何解决在同一单元格上具有多个类的列上的 Sklearn 编码
假设我有以下数据帧:
Column
0 A - B - C
1 A - B
2 A - C
3 A
4 B
5 C
我想对“列”进行编码,但我在同一个单元格中有多个类。使用熊猫我可以执行以下操作以获得正确的编码输出:
df['Column'].str.get_dummies(sep=' - ')
A B C
0 1 1 1
1 1 1 0
2 1 0 1
3 1 0 0
4 0 1 0
5 0 0 1
如何使用 Sklearn 进行相同的转换?
解决方法
另一种方法是使用 MultiLabelBinarizer 类,因为它支持可迭代作为输入。
df['Column'] = df['Column'].str.split(' - ')
enc = MultiLabelBinarizer()
enc.fit_transform(df['Column'])
,
看起来您可以通过 CountVectorizer
指定您要如何识别边界来完成此操作。
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
df = pd.DataFrame({'Column': ['A - B - C','A - B','A - C','A','B','C']})
vectorizer = CountVectorizer(analyzer=lambda x: x.split(' - '))
X = vectorizer.fit_transform(df['Column'])
X.toarray()
array([[1,1,1],[1,0],[0,1]])
vectorizer.get_feature_names()
['A','C']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。