機器學習SVM模型分類技術應用
大數據應用里最重要的一個分支是標籤定義,如何利用機器學習來為數據定義分類標籤是一個非常重要和有用的技術熱點,那麼什麼是定義分類標籤?先舉個例子,如何將10萬條新聞數據進行分類,將他們分為「時事新聞」,「民生新聞」或「娛樂新聞」;如何對20萬條用戶評論分為「喜歡」,「討厭」和「不感興趣」等內容這就是標籤分類,解決這類問題就需要使用機器學來完成,對於計算機來說,分類數十萬條數據可能是幾分鐘甚至幾秒鐘的事情,但如果將該任務用人工來分那恐怕就得數月了,然而這個艱澀的應用技術讓從事社會學研究人員常常望而卻步,本文將介紹在機器學習領域裡如何利用SVM(支持向量機)為大數據「傻瓜式」標註分類標籤的方法。
環境是在R里,之所以說傻瓜式是因為應用包集成了9大經典的機器學習演算法模型,應用人員不需要深入對這些演算法模型進行研究,所有模型均已集成完備只需要輸入簡單的幾個語句調用即可,本文僅選擇使用SVM一個模型測試,主要原因是經過筆者的探索SVM的召回準確率是最高的,同時,附帶9大模型的簡介
模型1:支持向量機(Support Vector Machine from e1071)
模型2:glmnet(一個非常流行的用於變數選擇的R包,俗稱kaggle競賽「三駕馬車」之一)
模型3:最大熵模型(maximum entropy from maxent)
模型4:大規模線性判別(scaled linear discriminant,slda)
模型5:裝袋演算法(bagging from ipred)
模型6:提升演算法(boosting from caTools)
模型7:隨機森林(random forest from randomForest)
模型8:神經網路(neural networks from nnet)
模型9:回歸樹(regression tree from tree)
另外,需要注意的是本次教程使用的學習模型是在監督學習基礎上完成的,換言之就是數據集里已有部分數據人工標註了標籤,將該部分標籤作為測試集,待標註標籤部分數據定義為訓練集即可,下面我們就以USCongress數據集作為案例來介紹。
一、USCongress數據集簡介
這是R自帶的一份關於美國國會預算案審批的經典數據集,共6列4500行,其中TEXT列欄位代表審批內容的文本描述,這部分文本內容也是我們要標註定義標籤分類的目標對象,major列里是對預算項的已有分類,數據集顯示如下,我們的測試目的是假設刪除4000行分類保留500行作為測試集並導出測試集後與原始標註進行對比。
二、基本代碼
library(sparme)
library(rtexttools)
library(readxl)
setwd=("c:\Data")
usc
view(usc)
doc_matrix
container
length(unique(usc$major))
SVM
SVM_CLASSIFY
analytics
summary(analytics)
topic_summary
alg_summary
ens_summary
doc_summary
create_ensembleSummary(analytics@document_summary)
write.csv(analytics@document_summary, "DocumentSummary.csv")
執行完成後,在事先預設的setwd()文件目錄下會生產一個CSV文件,文件里指定訓練集行數的內容就被自動標註了標籤,經過之前的測試,SVM的召回準確率可以達到74%。
感興趣的朋友可以親自試試啊,今天就到此結束。
TAG:機器學習 |