R 错误:某些组对于“qda”来说太小

2024-04-03

我用的是MASS::qda()找到我的数据的分类器,它总是报告

“某些群体对于‘qda’来说太小了

是由于我用于模型的测试数据的大小吗?我将测试样本大小从 30 增加到 100,它报告了相同的错误。求助啊啊啊啊啊……

set.seed(1345)
AllMono <- AllData[AllData$type == "monocot",]
MonoSample <- sample (1:nrow(AllMono), size = 100, replace = F)
set.seed(1355)
AllEudi <- AllData[AllData$type == "eudicot",]
EudiSample <- sample (1:nrow(AllEudi), size = 100, replace = F)
testData <- rbind (AllMono[MonoSample,],AllEudi[EudiSample,])
plot (testData$mono_score, testData$eudi_score, col = as.numeric(testData$type), xlab = "mono_score", ylab = "eudi_score", pch = 19)
qda (type~mono_score+eudi_score, data = testData)

这是我的数据示例

>head (testData)
                              sequence mono_score eudi_score    type
PhHe_4822_404_76       DTRPTAPGHSPGAGH    51.4930   39.55000 monocot
SoBi_10_265860_58      QTESTTPGHSPSIGH    33.1408    2.23333 monocot
EuGr_5_187924_158        AFRPTSPGHSPGAGH    27.0000   54.55000 eudicot
LuAn_AOCW01152859.1_2_79 NFRPTEPGHSPGVGH    20.6901   50.21670 eudicot
PoTr_Chr07_112594_90     DFRPTAPGHSPGVGH    43.8732   56.66670 eudicot
OrSa.JA_3_261556_75    GVRPTNPGHSPGIGH    55.0986   45.08330 monocot
PaVi_contig16368_21_57 QTDSTTPGHSPSIGH    25.8169    2.50000 monocot

>testData$type <- as.factor (testData$type)

> dim (testData)
[1] 200   4

> levels (testData$type)
[1] "eudicot" "monocot" "other" 

> table (testData$type)
eudicot monocot   other 
    100     100       0

> packageDescription("MASS")
Package: MASS
Priority: recommended
Version: 7.3-29
Date: 2013-08-17
Revision: $Rev: 3344 $
Depends: R (>= 3.0.0), grDevices, graphics, stats, utils

我的 R 版本是 R 3.0.2。


tl;dr我的猜测是你的预测变量被意外地变成了因子或字符向量。如果数据集中存在一些小故障,例如一行中存在虚假字符,则很容易发生这种情况。

以下是构建与您的数据集相似的数据集的方法:

set.seed(101)
mytest <- data.frame(type=rep(c("monocot","dicot"),each=100),
                 mono_score=runif(100,0,100),
                 dicot_score=runif(100,0,100))

一些有用的诊断:

str(mytest)
## 'data.frame':    200 obs. of  3 variables:
## $ type       : Factor w/ 2 levels "dicot","monocot": 2 2 22 2 2 2 ...
##  $ mono_score : num  37.22 4.38 70.97 65.77 24.99 ...
##  $ dicot_score: num  12.5 2.33 39.19 85.96 71.83 ...
summary(mytest)
##       type       mono_score      dicot_score     
##  dicot  :100   Min.   : 1.019   Min.   : 0.8594  
##  monocot:100   1st Qu.:24.741   1st Qu.:26.7358  
##                Median :57.578   Median :50.6275  
##                Mean   :52.502   Mean   :52.2376  
##                3rd Qu.:77.783   3rd Qu.:78.2199  
##                Max.   :99.341   Max.   :99.9288  
## 
with(mytest,table(type))
## type
##   dicot monocot 
##    100     100 

重要的是,前两个(str() and summary())向我们展示什么type每个变量都是。Update:事实证明,在这种情况下,第三个测试实际上是重要的一个,因为问题是一个虚假的额外级别:droplevel()函数应该解决这个问题......

这个虚构的例子似乎工作得很好,所以一定有一些你没有向我们展示的关于你的数据集的东西......

library(MASS)
qda(type~mono_score+dicot_score,data=mytest)

这是一个猜测。如果你的score变量实际上是factors而不是数字,那么qda会自动尝试从中创建虚拟变量,这将使模型矩阵更宽(本例中为 101 列)并引发您所看到的错误......

bad <- transform(mytest,mono_score=factor(mono_score))
qda(type~mono_score+dicot_score,data=bad)
## Error in qda.default(x, grouping, ...) : 
##    some group is too small for 'qda'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 错误:某些组对于“qda”来说太小 的相关文章

随机推荐

  • 如何防止用户关闭我的应用程序?

    我有一个将在餐厅使用的 Android 应用程序 所以我希望用户无法退出该应用程序 用户唯一可以做的就是使用应用程序 如果可能的话 只有管理员可以通过登录或重新启动设备退出应用程序 我不知道哪种方法是最好的方法 有解决方案或其他方法来做到这
  • PayPal iOS 和 Android SDK 中的 PAYMENT_CREATION_ERROR

    今天 我在 iOS 应用程序中使用 PayPal 结帐时遇到问题 用户登录后 我收到错误 PayPal SDK 请求失败 出现错误 PAYMENT CREATION ERROR 设置此付款时出现问题 请访问 PayPal 网站检查您的帐户
  • 虚拟审判室设计

    作为我的硕士项目的一部分 我建议构建一个用于零售服装店的虚拟试用室应用程序 目前 它旨在直接在商店中使用 但也可能扩展到在线商店 该应用程序将通过在屏幕上的 3D 复制品上展示选定的服装 向客户展示所选服装的外观 它涉及3个步骤 评估客户
  • C++11 Polyfills

    我正在开始一个新项目 目标是MSVC GCC latest GCC 4 3 ARM和更多 这waf我们已经构建了构建系统C 11编译器的功能检测 我现在拥有针对我目标的编译器中所有功能的预处理器宏C 11 例如 ifdef WAF FEAT
  • C++绘制像素问题

    如何制作窗口 或者更像剪辑区域 我可以在其中绘制像素 它可能使用 WinApi 但是我不希望我的项目看起来像 winapi 所以它将有 int main 代替 int WINAPI WinMain HINSTANCE 我找到了一个例子 我可
  • django admin - 如何显示缩略图而不是文件路径

    我正在尝试在管理界面中显示模型的缩略图 当我使用 list display 添加图像字段时 它显示文件的路径而不是图像本身 如何显示图像并控制其大小 我通过添加解决了这个问题 def image thumb self return img
  • 有哪些开源 C 项目值得学习来学习好的设计? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有哪些小型 C 语言开源项目对于学习良好的设计很有趣 该项目应该是 不太大 像linux内核 有据可查 也许仍在积极开发中 我刚刚开始学习
  • 错误:未指定模块(IntelliJ IDEA)

    我试图在 IntelliJ IDEA 中作为静态 Web 项目执行一个简单的程序 我是新手 正在学习使用 Node js 进行 Web 开发 我向IntelliJ IDEA官网寻求帮助 但错误还是一样 不过 我还配置了设置和项目结构 Err
  • 我怎样才能说服 IE 只显示 application/json 而不是提供下载它?

    在调试使用 AJAX 的 jQuery 应用程序时 我经常需要查看服务返回到浏览器的 json 因此 我会将 JSON 数据的 URL 放入地址栏中 这对于 ASPNET 来说很好 因为如果出现编码错误 我可以在浏览器中看到 ASPNET
  • 从 SQL 脚本调用 aspnet_regsql.exe

    如何打电话aspnet regsql exe来自 SQL 脚本 谢谢 你可以看看xp cmdshell http msdn microsoft com en us library aa260689 SQL 80 aspx xp cmdshe
  • 需要与 Microsoft.SqlServer.Management.Smo Transfer 类连接的帮助

    我试图复制所有内容 数据 索引 触发器 存储过程 在 C 中从一个数据库到另一个数据库 这是我的代码 SqlConnection connection new SqlConnection ConnectionString Server my
  • 通过减去属性来获取两个对象的差异

    我试图找出两个物体之间的差异 previousChart BWP 1 ZAR 1 3 USD 0 09324 number 1 currentChart BWP 1 ZAR 1 35 USD 0 01 number 2 期望的答案是 new
  • 如何让 Swing 应用程序感知屏幕尺寸变化?

    当我的 swing 应用程序运行时 我更改屏幕尺寸 例如从 1024x768 更改为 800x600 我可以收听任何活动以获得有关此事件的通知吗 或者 我可以每隔几秒检查一次屏幕尺寸 但 Toolkit getScreenSize 不断告诉
  • 在 Apache Spark SQL 中我们可以回滚事务吗

    我想让spark sql将数据持久化 这样的话我可以使用回滚我们已经持久化的数据吗 前任 假设我们有 3 个表 t1 t2 和 t3 t1 和 t2 表数据已成功保留 但 t3 在数据完整性级别上失败了 那么我可以回滚我已经坚持的 t1 和
  • python 中的日志精度

    以下是检查数字是否可以用幂表示的源代码 但为什么代码失败n 76 89 1 and n 76 89 我该如何解决这个错误 对于两个 n 给出x log n 2 log i 2 89 0 from math import log sqrt f
  • Amazon ElasticBeanStalk 工作线程层无法连接到 SQS

    目前 我在允许我的工作人员连接到 SQS 时遇到问题 这是日志 2014 07 21T21 37 26Z error AWS SQS Errors AccessDenied Access to the resource https sqs
  • 从 java.util.date 转换为 JodaTime

    我想转换一个java util Date to JodaTime以便在日期之间进行减法 有没有一个好的简洁方法来转换Date to JodaTime java util Date date DateTime dateTime new Dat
  • 如何在网页中动态显示 ping 输出?

    作为诊断页面的一部分 我希望用户能够运行 ping 即一个普通的 shell 命令 将 ICMP ECHO REQUST 发送到某个 IP 并在浏览器的 div 中动态显示结果 后端是 Ruby Rails 我已经在服务器端运行该命令并读取
  • 如何使用 FCM 向特定用户发送通知?

    我为 FCM 准备了接收器 可以向所有设备发送通知 gcm http googleapis com gcm send使用此链接可以发送给注册的目标用户并发布到目标设备 如下所示 json notification title sample
  • R 错误:某些组对于“qda”来说太小

    我用的是MASS qda 找到我的数据的分类器 它总是报告 某些群体对于 qda 来说太小了 是由于我用于模型的测试数据的大小吗 我将测试样本大小从 30 增加到 100 它报告了相同的错误 求助啊啊啊啊啊 set seed 1345 Al