簡體   English   中英

Scikit 學習分類

[英]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 中確定分類類的頂級特征實際上取決於您使用的單個工具。 例如,許多集成方法(如RandomForestClassifierGradientBoostingClassifer )都帶有.feature_importances_屬性,該屬性將根據每個特征的重要性對其進行評分。 相比之下,大多數線性模型(如LogisticRegressionRidgeClassifier )都有一個正則化懲罰,它會懲罰系數的大小,這意味着系數大小在某種程度上反映了特征的重要性(盡管您需要記住各個特征的數字尺度) 可以使用模型類的.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM