這次來試試貝式分類~~

 

用上一章KNN分類的資料來測試

 

> traindata
# A tibble: 50 × 8
Status SO2 CO O3 PM10 PM2.5 NO2 NO
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 普通 0.9 0.20 42 39 21 7.6 0.84
2 良好 1.4 0.20 49 49 25 0.0 0.00
3 普通 1.3 0.27 50 21 4 15.0 1.89
4 良好 1.6 0.29 52 38 0 7.3 0.76
5 普通 3.2 0.35 53 69 39 11.0 1.66
6 普通 0.6 0.21 67 18 6 3.1 0.91
7 普通 0.0 0.22 56 5 5 8.4 2.35
8 普通 0.9 0.26 54 18 4 9.3 1.62
9 良好 1.4 0.23 59 16 5 4.2 0.62
10 普通 4.9 0.38 60 96 46 9.8 1.97
# ... with 40 more rows
> testdata
# A tibble: 21 × 8
Status SO2 CO O3 PM10 PM2.5 NO2 NO
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 普通 2.3 0.19 47 92 34 4.3 0.82
2 普通 4.0 0.35 58 72 32 15.0 2.74
3 普通 1.5 0.25 62 19 10 11.0 0.43
4 普通 0.8 0.51 37 21 0 27.0 3.54
5 普通 0.0 0.19 32 0 0 8.4 4.11
6 普通 3.0 0.31 50 53 26 7.6 1.80
7 良好 0.4 0.34 49 17 5 18.0 2.19
8 普通 1.7 0.44 50 28 15 16.0 4.20
9 良好 1.5 0.18 30 42 14 2.7 1.48
10 普通 3.4 0.26 38 64 23 8.6 1.58
# ... with 11 more rows
>

 

*****注意!!!!!!******

目標變數Status  要轉換成因子喔!! 不然會出現NAs introduced by coercion的警告訊息,會影響到後續分析

 

> traindata$Status <- as.factor(traindata$Status)
> testdata$Status <- as.factor(testdata$Status )

 

#建模

> airM <- naiveBayes(Status ~ ., data = traindata)

> results <- predict(airM, testdata)

#評估-用混淆矩陣

> cm <- table(x = testdata$Status, y = results)
> cm
y
x 良好 普通
良好 5 0
普通 10 6

有10個普通被分類成良好

#看一下準確率~

> airaccuracy <- sum(diag(cm)) / sum(cm)
> airaccuracy
[1] 0.5238095

準確率只有0.5238095    這個模型的分類結果還....好

 

 

 

 

 

文章標籤
全站熱搜
創作者介紹
創作者 to52016 的頭像
to52016

Eason [資料科學//Python學習/資料庫] & [拍片&剪片]

to52016 發表在 痞客邦 留言(0) 人氣(791)