0
我想以下this教程分類使用SGDClassifier短語Scikit SGDClassifier使用字母爲特徵,而不是話
我的管道是這樣的:
p_clf = Pipeline([('vect', CountVectorizer(analyzer='word', ngram_range=(1, 2),
token_pattern=r'\b\w+\b', min_df=1)),
('tfidf', TfidfTransformer()),
('clf', SGDClassifier(loss='log', penalty='l2',
alpha=1e-3, n_iter=5, random_state=42)), ])
即使我得到正確的分類,我不明白爲什麼它把字母當作特徵而不是整個單詞。在這個例子中,當我打電話predict_proba('Hello')
我得到:
[[ 0.15889614 0.23752053 0.4353584 0.16822494]
[ 0.15889614 0.23752053 0.4353584 0.16822494]
[ 0.15889614 0.23752053 0.4353584 0.16822494]
[ 0.15889614 0.23752053 0.4353584 0.16822494]
[ 0.11579265 0.19786962 0.36811551 0.31822223]]
其中每排一個字母和列是我的班。 它不應該只是一行嗎?
''Hello''被也許解釋爲一個陣列/列表等[1 H 」, 'E', 'L', 'L', 'O']。如果使用predict_proba(['Hello'])會發生什麼? –
解決了它!謝謝 ! – Malaio
好,很高興我能幫到你。我會把它寫成答案,以便這個問題有一個可接受的答案。 –