我正在遇到错误“在 knn(train = prc_train, test = prc_test, cl = prc_train_labels, : 不允许有缺失值”的问题

我是使用R语言的数据科学初学者,无法解决这个错误,我使用的是前列腺癌数据集。错误出现在prc_test_pred处,显示错误信息为:在 knn(train = prc_train, test = prc_test, cl = prc_train_labels, : 不允许有缺失值。

stringsAsFactors = FALSE str(prc) prc <- prc[-1]  #从数据集中移除第一个变量(id)table(prc$diagnosis_result)  #帮助我们获取患者数量prc$diagnosis <- factor(prc$diagnosis_result, levels = c("B", "M"), labels = c("良性", "恶性")) #重命名round(prop.table(table(prc$diagnosis)) * 100, digits = 1)  #以百分比形式给出结果,保留一位小数normalize <- function(x) {  return ((x - min(x)) / (max(x) - min(x))) } #非常重要的步骤(归一化为共同尺度)prc_n <- as.data.frame(lapply(prc[2:9], normalize))summary(prc_n$radius)prc_train <- prc_n[1:65,]prc_test <- prc_n[66:100,]prc_train_labels <- prc[1:65, 1]prc_test_labels <- prc[66:100, 1] library(class)prc_test_pred <- knn(train = prc_train, test = prc_test, cl = prc_train_labels,k=10)library(gmodels)CrossTable(x=prc_test_labels, y=prc_test_pred, prop.chisq=FALSE) ```

回答:

我不确定你遇到了什么问题。可能是你读取csv文件的第一行出了问题。为了让你能够重现,这里是一个简单的使用KNN的分类器,使用了你代码中除第一行之外的所有代码

#prc <- read.csv("https://raw.githubusercontent.com/duttashi/learnr/master/data/misc/Prostate_Cancer.csv", header = TRUE, stringsAsFactors = FALSE)prc <- prc[-1]  prc$diagnosis <- factor(prc$diagnosis_result, levels = c("B", "M"), labels = c("良性", "恶性"))normalize <- function(x) {  return ((x - min(x)) / (max(x) - min(x))) } prc_n <- as.data.frame(lapply(prc[2:9], normalize))prc_train <- prc_n[1:65,]prc_test <- prc_n[66:100,]prc_train_labels <- prc[1:65, 1]prc_test_labels <- prc[66:100, 1] library(class)prc_test_pred <- knn(train = prc_train, test = prc_test, cl = prc_train_labels,k=10)library(gmodels)CrossTable(x=prc_test_labels, y=prc_test_pred, prop.chisq=FALSE) # -------------------------------------------------------------------------# Cell Contents#   |-------------------------|#   |                       N |#   |           N / Row Total |#   |           N / Col Total |#   |         N / Table Total |#   |-------------------------|#   #   #   Total Observations in Table:  35 # # #                   | prc_test_pred #   prc_test_labels |         B |         M | Row Total | #   ----------------|-----------|-----------|-----------|#                 B |         6 |        13 |        19 | #                   |     0.316 |     0.684 |     0.543 | #                   |     0.857 |     0.464 |           | #                   |     0.171 |     0.371 |           | #   ----------------|-----------|-----------|-----------|#                 M |         1 |        15 |        16 | #                   |     0.062 |     0.938 |     0.457 | #                   |     0.143 |     0.536 |           | #                   |     0.029 |     0.429 |           | #   ----------------|-----------|-----------|-----------|#      Column Total |         7 |        28 |        35 | #                   |     0.200 |     0.800 |           | #   ----------------|-----------|-----------|-----------|

希望你能重现相同的结果。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注