當每篇文章有目標或類別時,我們可以藉由SAS Text Mining「文字規則產生器」節點來看不同目標的文字有沒有什麼規則可言。
電子郵件中垃圾郵件充斥,垃圾郵件內容會有什麼規則?行銷?詐欺?色情?如果我們知道每篇文章是垃圾郵件與否,在此範例中我們使用「文字規則產生器」找到垃圾郵件有「email & ~enron & ~daren & mobile」、「sex」等規則,也就是說當郵件出現sex字詞,或是有出現email、mobile且沒有出現enron、daren字詞時很可能是垃圾信件。
此範例中,資料是來Enron-Spam datasets (http://nlp.cs.aueb.gr/software_and_datasets/Enron-Spam/index.html) 當中的Enron1資料,共5154筆Email的資料,其中包含1482筆spam的Email (垃圾郵件)以及3672筆ham的Email (非垃圾郵件);以及另外spam/ham各300筆的測試資料,因此在流程圖中ENRON_MAIL_TES資料集的角色為「測試」。
此外文字規則產生器需要有目標角色的變數,作為要產生規則的依據,在此範例中信件若是SPAM則我們將Prediction欄位值設定為0,若是HAM則Prediction設定為1。
此章節流程圖:
1. 結果
Rules Obtained:系統找出來的規則
Rules Obtained:系統找出來的規則
( Precision、Recall為規則分類評估的指標,欲知詳情請參考http://en.wikipedia.org/wiki/Precision_and_recall )
......
配飾統計:文章符合規則的一些統計數值 ( Test欄位是因為有輸入「測試」資料集才會有 )
Rule Success:每條規則分別判斷0/1的文章次數
評分排名重疊圖:評估的一些圖形
2. 其他參數調整
I. 訓練
i. 一般錯誤:規則對於訓練資料的錯誤容忍度,一般錯誤低,代表該rule在訓練資料非常準確,
但若要做新資料的預測可能造成overfitting的現象。
ii. 規則的純度:將詞語加入rule的條件,規則的純度越高則rule的詞語數越少越純粹。
iii. 詳盡:產生一條rule的條件,越詳盡則產生越多條rule,但可能需要越長的訓練時間。
II. 評分
i. 內容分類程式碼:布林值規則
F_Prediction =0 ::
(OR
, "meds"
, "php"
, "paliourg"
, "xp"
, "investment advice"
, "spam"
, (AND, (OR, "prescription" , "prescriptions" ))
, "biz"
, "pain"
, (AND, (OR, "monies" , "money" ), (NOT, (OR, "deal" , "deals" )), (NOT, "enron" )
...
F_Prediction =1 ::
(OR
, "enron"
, "hpl"
, "daren"
, (AND, (OR, "meter" , "meters" )
ii. 變更目標值:可以人工更改誤判值 ( Assigned Target欄位 )
3. 匯出的資料
( Predicted: Prediction=0為該文章預測為0這類的機率值;Residual: Prediction=0為該文章預測為0這類的殘差;Into: Prediction、Why Into: Prediction為最終該文章被預測為哪一類,以及是根據規則產生器產生的第幾條rule來判定 )
Tags