- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 k-NN 的新手,因此尝试通过 Datacamp 类(class):机器学习简介,使用 UCI 机器学习库中的泰坦尼克号数据集来学习它。
我已经完成了根据准确度 (accs
) 选择最佳 k 参数的部分。但是,当我在 Rstudio 上复制练习时,我得到 k=1;答案应该是 k=73。我哪里出错了?
#load dataset
titanic_train<-read.csv("https://kaggle2.blob.core.windows.net/competitions-data/kaggle/3136/train.csv?sv=2015-12-11&sr=b&sig=coHTg7HQb86RdaxfD2f9SiN492A4XLIDDRKVxLvw8Ys%3D&se=2017-03-19T10%3A26%3A52Z&sp=r")
# Omit NAs
titanic_train<-na.omit(titanic_train[,c("Survived", "Pclass", "Age", "Sex")])
library(class)
library(dplyr)
set.seed(1)
n <- nrow(titanic_train)
shuffled <- titanic_train[sample(n), ]
# Split the data : train and test
train_indices <- 1:round(0.7 * n)
train <- shuffled[train_indices, ]
test_indices <- (round(0.7 * n) + 1):n
test <- shuffled[test_indices, ]
# Store the Survived column of train and test in train_labels and test_labels
train_labels<-train$Survived
test_labels<-test$Survived
# Copy train and test to knn_train and knn_test
train$Sex = as.numeric(factor(train$Sex))
train <- train %>% mutate(Sex=ifelse(Sex==2, 1,0))
train$Survived=factor(train$Survived)
summary(train$Sex)
knn_train<-train
knn_train$Age<-round(knn_train$Age,7)
test$Sex = as.numeric(factor(test$Sex))
test <- test %>% mutate(Sex=ifelse(Sex==2, 1,0))
test$Survived=factor(test$Survived)
summary(test$Sex)
knn_test<-test
# Drop Survived column for knn_train and knn_test
knn_train$Survived<-NULL
knn_test$Survived<-NULL
# Normalize Pclass
min_class <- min(knn_train$Pclass)
max_class <- max(knn_train$Pclass)
knn_train$Pclass <- (knn_train$Pclass - min_class) / (max_class - min_class)
knn_test$Pclass <- (knn_test$Pclass - min_class) / (max_class - min_class)
# Normalize Age
min_age <- min(knn_train$Age)
max_age <- max(knn_train$Age)
knn_train$Age <- (knn_train$Age-min_age)/(max_age-min_age)
knn_test$Age <- (knn_test$Age-min_age)/(max_age-min_age)
summary(train)
# Set random seed.
set.seed(1)
# define range and accs
range <- 1:round(0.2 * nrow(knn_train))
accs <- rep(0, length(range))
for (k in range) {
pred <- knn(knn_train, knn_test, train_labels, k = k)
pred<-factor(pred, levels=c(1,0))
test_labels<-factor(test_labels, levels=c(1,0))
conf <- table(test_labels, pred)
accs[k] <- sum(diag(conf)) / sum(conf)
}
# Plot the accuracies.
plot(range, accs, xlab = "k")
# Calculate the best k
which.max(accs)
accs[which.max(accs)]
最佳答案
我猜你想要你定义为最佳 k 的最佳 k(最后评论:# Calculate the best k)。 p>
然而调用它只会让你得到最大值。
which.max(accs)
accs[which.max(accs)]
毫无疑问,k=1 时的最大精度为 0.8364486。
如果您想找到最佳的 k,您需要目视检查它(使用碎石图)。找到最长的弯头并设置 k 的值。 (这是一个主观决定,因人而异。)
关于r - k-NN 示例中的错误准确度度量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882263/
在 Vim 中,我打开了一个基本结构如下的文件: 3677137 00:01:47.04 666239 00:12:57.86 4346 00:00:01.77 418 00:00:0
我正在尝试构建一个正则表达式来处理以字符串形式呈现给我的数据类型,有两种可能的格式: 字符串[nmin..nmax] 字符串[nmax] 其中 nmin 和 nmax 是一些数字。 我构建了适合我的正
我尝试按照 tensorflow 教程实现 MNIST CNN 神经网络,并找到这些实现 softmax 交叉熵的方法给出了不同的结果: (1) 不好的结果 softmax = tf.nn.softm
我是 Pytorch 的新手,我不太了解的一件事是 nn.ModuleList 的用法。和 nn.Sequential .我能知道什么时候应该使用一个而不是另一个吗?谢谢。 最佳答案 nn.Modul
我不明白当数据为 3D 时 BatchNorm1d 如何工作(批量大小、H、W)。 示例 输入大小:(2,50,70) 图层:nn.Linear(70,20) 输出大小:(2,50,20) 如果我随后
我浏览了chapter 7 NLTK 书中的内容正在寻找解决方案,但到目前为止我还不清楚。 *表示 0 个或多个名词 *正如书中所解释的,意思是0个或多个任何类型的名词 NLTK 中是 NN , NN
:nn.MaxPool2d(kernel_size, stride) 和 nn.function.max_pool2d(t, kernel_size, stride) 之间有什么区别? 我在模块中定义
我正在使用 Hadoop 2.6.0-cdh5.6.0。我已经配置了 HA。我显示了事件(NN1)和备用名称节点(NN2)。现在,当我向事件名称节点(NN1)发出终止信号时,备用名称节点(NN2)不会
Pytorch 中的许多损失函数都在 nn.modules.loss 和 nn.functional 中实现。 例如,下面的两行返回相同的结果。 import torch.nn as nn impor
我已阅读 docs of both functions ,但据我所知,对于函数 tf.nn.softmax_cross_entropy_with_logits(logits, labels, dim=
当我尝试比较 tf.nn.fused_batch_norm 的方差输出和 tf.nn.moments 的方差输出时,对于相同的输入,我没有相同的值。 import numpy as np import
当我尝试比较 tf.nn.fused_batch_norm 的方差输出和 tf.nn.moments 的方差输出时,对于相同的输入,我没有相同的值。 import numpy as np import
这个问题在这里已经有了答案: Are there any computational efficiency differences between nn.functional() Vs nn.seq
我有一个简单的 Java 客户端,可以将文件保存到 HDFS - 配置了 1 个名称节点。为此,我使用 hadoop 配置,指定默认文件系统,如: org.apache.hadoop.conf.Con
我将此 varchar 格式作为时间累积,我想将其转换为整数以执行 SUM 并获得一组的总时间。第一部分可以是1、2、3、4甚至5位数字,代表小时数的累加,然后用冒号隔开。然后是第二部分,即分钟的累积
在 pytorch 0.4.0 版本中,有一个 nn.LayerNorm模块。 我想在我的 LSTM 网络中实现这一层,尽管我在 LSTM 网络上找不到任何实现示例。 pytorch 贡献者暗示这 n
以下是使用 PyTorch 中的 nn.functional() 模块的前馈网络 import torch.nn as nn import torch.nn.functional as F class
对于住宿实体,我们有两列可以为空:CollectionType和 AccommodationUnitType . 但是我注意到在数据中它们被设置为零而不是空,导致 NHibernate 尝试查找 id
我只需要分块那些只有那种模式的短语,而不是再分块一次。我在 Python 中使用 NLTK 库 完成了它,但不起作用 import nltk import re document="they run
例如,如果我有以下模型类: class MyTestModel(nn.Module): def __init__(self): super(MyTestModel, self)
我是一名优秀的程序员,十分优秀!