[英]Scikit learn-Classification
有沒有一種直接的方法可以查看每個類的主要功能? 基於tfidf?
我正在使用 KNeighbors 分類器、SVC-Linear、MultinomialNB。
其次,我一直在尋找一種查看未正確分類的文檔的方法? 我可以查看混淆矩陣,但我想查看特定文檔以查看導致錯誤分類的特征。
classifier = SVC(kernel='linear')
counts = tfidf_vectorizer.fit_transform(data['text'].values).toarray()
targets = data['class'].values
classifier.fit(counts, targets)
counts = tfidf_vectorizer.fit_transform(test['text'].values).toarray()
predictions = classifier.predict(counts)
編輯:我添加了代碼片段,其中我只創建了一個 tfidf 向量化器並使用它來訓練分類器。
就像之前的評論所暗示的那樣,一個更具體的問題會得到更好的答案,但我一直在使用這個包,所以我會嘗試提供幫助。
I. 在 sklearn 中確定分類類的頂級特征實際上取決於您使用的單個工具。 例如,許多集成方法(如RandomForestClassifier
和GradientBoostingClassifer
)都帶有.feature_importances_
屬性,該屬性將根據每個特征的重要性對其進行評分。 相比之下,大多數線性模型(如LogisticRegression
或RidgeClassifier
)都有一個正則化懲罰,它會懲罰系數的大小,這意味着系數大小在某種程度上反映了特征的重要性(盡管您需要記住各個特征的數字尺度) 可以使用模型類的.coef_
屬性訪問。
總之,幾乎所有 sklearn 模型都有一些提取特征重要性的方法,但方法因模型而異。 幸運的是 sklearn 文檔很棒,所以我會閱讀您的特定模型以確定您的最佳方法。 此外,除了特定於模型的 API 外,請確保閱讀與您的問題類型相關的用戶指南。
二、 沒有開箱即用的 sklearn 方法來提供錯誤分類的記錄,但是如果您使用 Pandas DataFrame(您應該使用它)來提供模型,則可以通過這樣的幾行代碼來完成。
import pandas as pd
from sklearn.linear_model import RandomForestClassifier
df = pd.DataFrame(data)
x = df[[<list of feature columns>]]
y = df[<target column>]
mod = RandomForestClassifier()
mod.fit(x.values, y.values)
df['predict'] = mod.predict(x.values)
incorrect = df[df['predict']!=df[<target column>]]
結果incorrect
DataFrame 將只包含錯誤分類的記錄。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.