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))' –