У меня был набор данных с 36400 столбцами / признаками / предикторами (типами белков) и 500 наблюдениями, а последний столбец - это столбец ответа "класс", который указывает на 2 типа ячеек - A и B. Мы должны выполнить функциювыбор, чтобы уменьшить количество предикторов, которые помогают дифференцировать 2 типа клеток.Первым шагом для этого было удалить все столбцы, максимальное значение которых было меньше 2. Я сделал следующее, чтобы добиться этого, и уменьшил число предикторов до 26000:
newdf<- protein2 %>%
#Select column whose max value is greater than equal to 2
select_if(~max(., na.rm = TRUE) >= 2)
ncol(newdf)
Для дальнейшего сокращения мыОжидается, что удалят предикторы с низкой дисперсией, выполняя тест anova для каждого предиктора и удаляя предикторы с p-значением> = 0,01.Я думаю, что я сделал это правильно, используя следующий код:
scores <- as.data.frame(apply(newdf[,-ncol(newdf)],2, anovaScores, newdf$class))
scores
new_scores <- scores[scores<0.01]
Я не уверен, почему, но я не могу подтвердить свои результаты, используя ncols или colnames или что-то.использование length (new_scores) дает 2084, что находится в диапазоне сокращенных предикторов, которых ожидает профессор.Но мне нужен кто-то, чтобы подтвердить, что это был правильный путь.И если да, то почему я не могу разделить свои данные на наборы данных для обучения и тестирования?при попытке этого я получаю ошибку Ошибка в new_scores $ class: $ оператор недопустим для атомарных векторов.Вот как я делю набор данных обучения и тестирования:
intrain <- createDataPartition(y = new_scores$class ,p = 0.8,list = FALSE) #split data
assign("training", new_scores[intrain,] )
assign("testing", new_scores[-intrain,] )
Проблема в строке createatapartition, но я не уверен, что что-то, что было сделано в предыдущих шагах, неверно или я что-то упустил
Не уверен, как предоставить воспроизводимые данные, но ниже приведен фрагмент данных, в котором столбец lass является классом переменной ответа, а остальные - все предикторы:
X Y Z A B C class
3 4.5 3 4 8 10.1 A
9 6 2.5 6 4 4 B
4 3.8 4 9 6 8.2 B
6 7.1 6 7 4 8 A
4 5.6 9 5 3 7.5 A