在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳細解析scikit-learn進行文本分類

lviY_AI_shequ ? 2017-12-27 08:36 ? 次閱讀

使用scikit-learn進行文本分類

多標簽分類格式

對于多標簽分類問題而言,一個樣本可能同時屬于多個類別。如一個新聞屬于多個話題。這種情況下,因變量yy需要使用一個矩陣表達出來。

而多類別分類指的是y的可能取值大于2,但是y所屬類別是唯一的。它與多標簽分類問題是有嚴格區別的。所有的scikit-learn分類器都是默認支持多類別分類的。但是,當你需要自己修改算法的時候,也是可以使用scikit-learn實現多類別分類的前期數據準備的。

多類別或多標簽分類問題,有兩種構建分類器的策略:One-vs-All及One-vs-One。下面,通過一些例子進行演示如何實現這兩類策略。
詳細解析scikit-learn進行文本分類

#from sklearn.preprocessing import MultiLabelBinarizery = [[2,3,4],[2],[0,1,3],[0,1,2,3,4],[0,1,2]]MultiLabelBinarizer().fit_transform(y)array([[0, 0, 1, 1, 1], [0, 0, 1, 0, 0], [1, 1, 0, 1, 0], [1, 1, 1, 1, 1], [1, 1, 1, 0, 0]])One-Vs-The-Rest策略

這個策略同時也稱為One-vs-all策略,即通過構造K個判別式(K為類別的個數),第ii個判別式將樣本歸為第ii個類別或非第ii個類別。這種分類方法雖然比較耗時間,但是能夠通過每個類別對應的判別式獲得關于該類別的直觀理解(如文本分類中每個話題可以通過只屬于該類別的高頻特征詞區分)。

多類別分類學習

from sklearn import datasetsfrom sklearn.multiclass import OneVsRestClassifierfrom sklearn.svm import LinearSVCiris = datasets.load_iris()X,y = iris.data,iris.targetOneVsRestClassifier(LinearSVC(random_state = 0)).fit(X,y).predict(X)array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])

多標簽分類學習

Kaggle上有一個關于多標簽分類問題的競賽:Multi-label classification of printed media articles to topics(地址:https://www.kaggle.com/c/wise-2014)。

關于該競賽的介紹如下:

This is a multi-label classification competition for articles coming from Greek printed media. Raw data comes from the scanning of print media, article segmentation, and optical character segmentation, and therefore is quite noisy. Each article is examined by a human annotator and categorized to one or more of the topics being monitored. Topics range from specific persons, products, and companies that can be easily categorized based on keywords, to more general semantic concepts, such as environment or economy. Building multi-label classifiers for the automated annotation of articles into topics can support the work of human annotators by suggesting a list of all topics by order of relevance, or even automate the annotation process for media and/or categories that are easier to predict. This saves valuable time and allows a media monitoring company to expand the portfolio of media being monitored.

我們從該網站下載相應的數據,作為多標簽分類的案例學習。

數據描述

這個文本數據集已經用詞袋模型進行形式化表示,共201561個特征詞,每個文本對應一個或多個標簽,共203個分類標簽。該網站提供了兩種數據格式:ARFF和LIBSVM,ARFF格式的數據主要適用于weka,而LIBSVM格式適用于matlab中的LIBSVM模塊。這里,我們采用LIBSVM格式的數據。

數據的每一行以逗號分隔的整數序列開頭,代表類別標簽。緊接著是以\t分隔的id:value對。其中,id為特征詞的ID,value為特征詞在該文檔中的TF-IDF值。

形式如下。

58,152 833:0.032582 1123:0.003157 1629:0.038548 ...

數據載入

# load modulesimport os import sysimport numpy as npfrom sklearn.datasets import load_svmlight_filefrom sklearn.preprocessing import LabelBinarizerfrom sklearn.preprocessing import MultiLabelBinarizerfrom sklearn.linear_model import LogisticRegressionfrom sklearn.multiclass import OneVsRestClassifierfrom sklearn import metrics# set working directoryos.chdir("D:\\my_python_workfile\\Thesis\\kaggle_multilabel_classification")# read filesX_train,y_train = load_svmlight_file("./data/wise2014-train.libsvm",dtype=np.float64,multilabel=True)X_test,y_test = load_svmlight_file("./data/wise2014-test.libsvm",dtype = np.float64,multilabel=True)

模型擬合及預測

# transform y into a matrixmb = MultiLabelBinarizer()y_train = mb.fit_transform(y_train)# fit the model and predictclf = OneVsRestClassifier(LogisticRegression(),n_jobs=-1)clf.fit(X_train,y_train)pred_y = clf.predict(X_test)

模型評估

由于沒有關于測試集的真實標簽,這里看看訓練集的預測情況。

# training set resulty_predicted = clf.predict(X_train)#report #print(metrics.classification_report(y_train,y_predicted))import numpy as npnp.mean(y_predicted == y_train)0.99604661023482433

保存結果

# write the outputout_file = open("pred.csv","w")out_file.write("ArticleId,Labels\n")id = 64858for i in xrange(pred_y.shape[0]): label = list(mb.classes_[np.where(pred_y[i,:]==1)[0]].astype("int")) label = " ".join(map(str,label)) if label == "": # if the label is empty label = "103" out_file.write(str(id+i)+","+label+"\n")out_file.close()One-Vs-One策略

One-Vs-One策略即是兩兩類別之間建立一個判別式,這樣,總共需要K(K?1)/2K(K?1)/2個判別式,最后通過投票的方式確定樣本所屬類別。

多類別分類學習

from sklearn import datasetsfrom sklearn.multiclass import OneVsOneClassifierfrom sklearn.svm import LinearSVCiris = datasets.load_iris()X,y = iris.data,iris.targetOneVsOneClassifier(LinearSVC(random_state = 0)).fit(X,y).predict(X)array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])參考文獻

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 文本分類
    +關注

    關注

    0

    文章

    18

    瀏覽量

    7340

原文標題:使用scikit-learn實現多類別及多標簽分類算法

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Python機器學習庫談Scikit-learn技術

    Scikit-learn API內置了各種toy和real-world數據集[1]。這些可以便捷地通過一行代碼訪問,如果你正在學習或只是想快速嘗試新功能,這會非常有用。
    的頭像 發表于 08-27 17:34 ?3183次閱讀
    Python機器學習庫談<b class='flag-5'>Scikit-learn</b>技術

    通用Python機器學習庫scikit-learn

    《利用Python進行數據分析》 134 scikit-learn介紹
    發表于 10-25 07:58

    TensorFlow的CNN文本分類

    在TensorFlow中實現CNN進行文本分類(譯)
    發表于 10-31 09:27

    NLPIR平臺在文本分類方面的技術解析

    一下NLPIR大數據語義智能分析系統是怎樣實現文本分類的。NLPIR大數據語義智能分析平臺的文本分類有兩種模式:專家規則分類與機器學習分類。專家規則
    發表于 11-18 17:46

    基于Python的scikit-learn編程實例

    scikit-learn 是機器學習領域非常熱門的一個開源庫,基于Python 語言寫成。可以免費使用。 網址: 上面有很多的教程,編程實例。而且還做了很好的總結,下面這張圖基本概括了傳統機器學習
    發表于 11-15 19:39 ?1706次閱讀

    scikit-learn K近鄰法類庫使用的經驗總結

    本文對scikit-learn中KNN相關的類庫使用做了一個總結,主要關注于類庫調參時的一個經驗總結,且非常詳細地介紹了類庫的參數含義。
    的頭像 發表于 01-13 11:49 ?3295次閱讀
    <b class='flag-5'>scikit-learn</b> K近鄰法類庫使用的經驗總結

    textCNN論文與原理——短文本分類

    是處理圖片的torchvision,而處理文本的少有提及,快速處理文本數據的包也是有的,那就是torchtext[1]。下面還是結合上一個案例:【深度學習】textCNN論文與原理——短文本分類(基于pytorch)[2],使用
    的頭像 發表于 12-31 10:08 ?2576次閱讀
    textCNN論文與原理——短<b class='flag-5'>文本分類</b>

    基于Python的scikit-learn包實現機器學習

    基于Python的scikit-learn包實現機器學習。
    發表于 03-26 09:42 ?11次下載
    基于Python的<b class='flag-5'>scikit-learn</b>包實現機器學習

    基于雙通道詞向量的卷積膠囊網絡文本分類算法

    的詞向量與基于特定文本分類任務擴展的語境詞向量作為神經網絡的2個輸入通道,并采用具有動態路由機制的卷積膠囊網絡模型進行文本分類。在多個英文數據集上的實驗結果表明,雙通道的詞向量訓練方式優于單通道策略,與LSTM、RAE、 M
    發表于 05-24 15:07 ?6次下載

    基于LSTM的表示學習-文本分類模型

    文本表示和分類是自然語言理解領域的研究熱點。目前已有很多文本分類方法,包括卷積網絡、遞歸網絡、自注意力機制以及它們的結合。但是,復雜的網絡并不能從根本上提高文本分類的性能,好的
    發表于 06-15 16:17 ?18次下載

    Scikit-learn機器學習庫的概念及工作原理

    作為一個適用于 Python 編程語言的機器學習 (ML) 庫,Scikit-learn 擁有大量算法,可供程序員和數據科學家在機器學習模型中輕松部署。
    的頭像 發表于 09-30 11:00 ?1540次閱讀

    深度學習——如何用LSTM進行文本分類

    簡介 主要內容包括 如何將文本處理為Tensorflow LSTM的輸入 如何定義LSTM 用訓練好的LSTM進行文本分類 代碼 導入相關庫 #coding=utf-8 import
    的頭像 發表于 10-21 09:57 ?1693次閱讀

    PyTorch文本分類任務的基本流程

    文本分類是NLP領域的較為容易的入門問題,本文記錄文本分類任務的基本流程,大部分操作使用了**torch**和**torchtext**兩個庫。 ## 1. 文本數據預處理
    的頭像 發表于 02-22 14:23 ?1167次閱讀

    NLP中的遷移學習:利用預訓練模型進行文本分類

    遷移學習徹底改變了自然語言處理(NLP)領域,允許從業者利用預先訓練的模型來完成自己的任務,從而大大減少了訓練時間和計算資源。在本文中,我們將討論遷移學習的概念,探索一些流行的預訓練模型,并通過實際示例演示如何使用這些模型進行文本分類。我們將使用擁抱面轉換器庫來實現。
    發表于 06-14 09:30 ?483次閱讀

    卷積神經網絡在文本分類領域的應用

    顯著成就后,也逐漸被引入到文本分類任務中。卷積神經網絡通過模擬人類視覺系統的信息處理方式,能夠有效地提取文本中的局部特征,進而實現高精度的文本分類。本文將對卷積神經網絡在文本分類領域的
    的頭像 發表于 07-01 16:25 ?819次閱讀
    主站蜘蛛池模板: 仙踪林欧美另类视频 | 玖玖草在线观看 | 极品丰满翘臀后进啪啪 | 麦克斯奥特曼免费观看 | 国产在线一卡 | 国产午夜精品视频 | 4455vw亚洲毛片| 777黄色片| 午夜影院一区二区三区 | 天堂网站 | 日本一视频一区视频二区 | 午夜高清在线观看免费6 | 五月婷婷综合激情 | 国产精品视频色拍拍 | 最新中文字幕在线资源 | 国产一级免费视频 | 天堂中文在线最新版地址 | 在线观看二区三区午夜 | 国产单男| 国产免费高清视频在线观看不卡 | 午夜伦y4480影院中文字幕 | 毛片你懂的 | 操片| 午夜理伦片免费 | 一个色在线| 欧美一级视频高清片 | 手机午夜看片 | 四虎永久在线精品影院 | 最近高清在线视频观看免费 | 日鲁夜鲁鲁狠狠综合视频 | 亚洲天堂ww | 欧美高清在线观看视频 | 性爽爽| 亚洲最新黄色网址 | 99久久久免费精品免费 | 婷婷久月 | 天堂视频网 | 九色国产在视频线精品视频 | h在线观看视频免费网站 | 午夜色大片在线观看 | 久久精品国产精品亚洲精品 |