我正在研究歌曲数据集的流派分类问题。由于流派是一个名义特征,我使用 sklearn 的 LabelBinarizer 为数据集中的每一行获取此特征的 one-hot 编码。然后我留下了一个数据框(df_train_num),它有两列,本质上都是数字,还有一个 Series 对象,其中每一行的值都是一个 numpy 数组——该类型的单热编码。我现在想在这些数据上拟合一个分类器。我所做的是:
svm_classifier = LinearSVC()
svm_classifier.fit(df_train_num,df_train_genre)
这给了我:
ValueError:未知标签类型:“未知”
究竟是什么导致了这个错误?我是否不允许在 中使用带有 DataFrame 对象的 Series 对象来适应分类器?尽管替换df_train_genre
为df_train_genre.values
以便将 numpy 数组直接传递给 fit 方法也不会改变任何内容。同样的错误。
这是两个 pandas 对象的视图:
df_train_num.head(5)
Unique_Word_Count Sentiment Polarity
157277 126 0.027766
90109 114 -0.199545
106224 16 0.000000
221087 103 -0.058025
247082 409 -0.170143
df_train_genre.head(5)
157277 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...
90109 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, ...
106224 [0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...
221087 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...
247082 [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...
Name: Genre_Encoded, dtype: object