gpt4 book ai didi

machine-learning - scikit learn 离散化分类数值数据

转载 作者:行者123 更新时间:2023-11-30 09:54:00 26 4
gpt4 key购买 nike

我正在尝试离散数据以进行分类。它们的值是字符串,我将它们转换为数字 0,1,2,3。

这就是数据的样子(pandas 数据框)。我已将数据帧拆分为 dataLabeldataFeatures

Label   Feat1  Feat2  Feat3
0 0 3 0
1 1 1 2
2 0 2 2
3 1 3 3

我想使用 scikit learn 的决策树和多项式朴素贝叶斯,并尝试使用 DictVectorizer 离散化数据

这就是我所拥有的

dictvec = dataFeatures.T.to_dict().values()

从 sklearn.feature_extraction 导入 DictVectorizer 作为 DV
向量化器 = DV( 稀疏 = False )
X = vectorizer.fit_transform(dictvec)

Y = dataLabel.ravel()

这是我对分类器的输入

from sklearn.naive_bayes import MultinomialNB

mnb = MultinomialNB()

from sklearn import metrics
scores = cross_val_score(mnb, Y, X, cv=10, scoring='accuracy')

我收到错误错误的输入形状 (64, 4) 但我不确定这是否与数据的离散化方式有关。

我的问题是 - 这是离散化数据的正确方法吗?我的代码正确还是有更好的方法?

最佳答案

所以错误是 Y 和 X 的顺序错误 - 应该是 scores = cross_val_score(mnb, X, Y, cv=10, rating='accuracy') 。代码现在可以正确运行 - 通过研究不同的选项 - 我发现使用 OneHotEncoderDictVectorizer

更好

关于machine-learning - scikit learn 离散化分类数值数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38551805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com