如何使用最近收缩质心分类器训练基因数据集?

我有一个名为”geneexp.csv”的数据文件。

该数据包含三种不同细胞类型(CD4、CD8和CD19)的基因表达信息。我想通过对训练数据进行最近收缩质心分类来对细胞进行分类,并通过交叉验证选择阈值。我将数据分成了70%的训练集和30%的测试集。

data = read.csv("geneexp.csv")splitData <- function(data, trainRate) {  n <- dim(data)[1]  idxs <- sample(1:n, floor(trainRate*n))  train <- data[idxs,]  test <- data[-idxs,]  return (list(train = train, test = test))}split <- splitData(data, .7)train <- split$traintest  <- split$test

然后我尝试使用pamr包构建以下模型并绘图:

y <- train[[ncol(train)]]x <- t(train[,-ncol(train)]) mydata <- list(  x = x,   y = as.factor(y),  geneid = as.character(1:nrow(x)),  genenames = rownames(x))# 训练和交叉验证阈值model <- pamr.train(mydata)cvmodel <- pamr.cv(model, mydata)pamr.plotcv(cvmodel)

但我无法使其工作。我得到了以下错误:

contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])中出现错误:
对比度只能应用于具有2个或更多级别的因子

我已经将y转换为了因子。你能帮我吗?我该如何修复这个问题?


回答:

这个代码块可能有助于解决错误。

library(readr)data=read.table("geneexp.csv", row.names = 1, header =T, sep = ',')# 将数据分为训练集和测试集n <- dim(data)[1]set.seed(12345)id <- sample(1:n, floor(n*0.7))train <- data[id,]test <- data[-id,]library(pamr)x <- t(train[,-2086])y <- train[[2086]]mydata <- list(x=x,y=as.factor(y),geneid=as.character(1:nrow(x)), genenames=rownames(x))# 构建NSC模型model <- pamr.train(mydata)modelCV <- pamr.cv(model,mydata)pamr.plotcv(modelCV)

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中创建了一个多类分类项目。该项目可以对…

发表回复

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