0
我有以下數據集:獲取概率中的R
TRAIN
數據集
Sr A B C XX
1 0.09 0.52 11.1 high
2 0.13 0.25 11.1 low
3 0.20 0.28 11.1 high
4 0.29 0.50 11.1 low
5 0.31 0.58 11.1 high
6 0.32 0.37 11.1 high
7 0.37 0.58 11.1 low
8 0.38 0.40 11.1 low
9 0.42 0.65 11.1 high
10 0.42 0.79 11.1 low
11 0.44 0.34 11.1 high
12 0.45 0.89 11.1 low
13 0.57 0.72 11.1 low
TEST
數據集
Sr A B C XX
1 0.54 1.36 9.80 low
2 0.72 0.82 9.80 low
3 0.19 0.38 9.90 high
4 0.25 0.44 9.90 high
5 0.29 0.54 9.90 high
6 0.30 0.54 9.90 high
7 0.42 0.86 9.90 low
8 0.44 0.86 9.90 low
9 0.49 0.66 9.90 low
10 0.54 0.76 9.90 low
11 0.54 0.76 9.90 low
12 0.68 1.08 9.90 low
13 0.88 0.51 9.90 high
Sr
:序列號
A-C
:參數
XX
:輸出二進制參數
我試圖用KNN分類制定與5點的近鄰的預測模型。以下是我寫的代碼:
train_input <- as.matrix(train[,-ncol(train)])
train_output <- as.factor(train[,ncol(train)])
test_input <- as.matrix(test[,-ncol(test)])
prediction <- knn(train_input, test_input, train_output, k=5, prob=TRUE)
resultdf <- as.data.frame(cbind(test[,ncol(test)], prediction))
colnames(resultdf) <- c("Actual","Predicted")
RESULT
數據集
A P
1 2 2
2 2 2
3 1 2
4 1 1
5 1 1
6 1 2
7 2 2
8 2 2
9 2 2
10 2 2
11 2 2
12 2 1
13 1 2
我有以下的憂慮:
- 我應該怎麼做才能獲得概率值?這是一個高或低的概率,即P(高)或P(低)?
- 級別設置爲1(
high
)和2(low
),這是基於首次出現的順序。如果low
在火車數據集中的high
之前出現,則它的值爲1.我認爲這不是好習慣。無論如何,我可以避免這種情況嗎? - 如果分類器中有更多的類(超過2個),我將如何在分類器中處理這個問題?
我使用的是class
和e1071
庫。 謝謝。引入「文本」的說法掃描前建成
這不就是使用'table'和'prop.table'嗎? –
請您詳細說明一下嗎?我對R比較陌生。 – AngryPanda
'prop.table(table(RESULT))' –