randomForest wybiera regresję zamiast klasyfikacji


12

Korzystam z pakietu randomForest w R i korzystam z danych tęczówki, generowany losowy las jest klasyfikacją, ale kiedy używam zestawu danych z około 700 funkcjami (każdy z nich to piksel na obrazie 28 x 28 pikseli) i kolumna etykiety jest nazywana label, randomForestgenerowana jest regresja. Korzystam z następującego wiersza:

rf <- randomForest(label ~ ., data=train)

Dlaczego regresja jest stosowana zamiast klasyfikacji? Dane są wczytywane read.csv().

Odpowiedzi:


10

randomForest domyślnie klasyfikuje lub regresuje w zależności od klasy zmiennej. Więc jeśli napiszesz

class(iris$Species)

zobaczysz, że to czynnik. „etykieta” w twoim kodzie, najprawdopodobniej ma postać numeryczną, więc losowe Domyślnie regresja jest domyślna. Będziesz musiał przekonwertować go na współczynnik do klasyfikacji. Możesz go przekonwertować lub odczytać jako czynnik, ustawiając colClasses w read.table.


4

Najczęściej dzieje się tak, ponieważ nie powiedziałeś R, że etykieta jest zmienną kategoryczną. Do read.csvprób funkcyjnych odgadnąć, jaki typ użyć dla każdej kolumny i jeśli wygląda kolumny numerycznej następnie to, co będzie z niego korzystać. Możesz sprawdzić, w jaki sposób R przechowuje zmienną za pomocą strfunkcji. Możesz wymusić read.csvodczytanie zmiennej jako czynnik (lub liczbowy lub ...) za pomocą colClassesargumentu. Lub możesz zmienić etykiety na czynnik po przeczytaniu go podczas korzystania z factorfunkcji.

Jeśli tak nie jest, potrzebujemy więcej informacji o twoich danych. strPrawdopodobnie przydatne byłyby wyniki z pracy w ramce danych.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.