Дерево решений производит только один узел - PullRequest
0 голосов
/ 06 апреля 2019

Я использую набор данных kaggle для Великобритании по безопасности дорожного движения (https://www.kaggle.com/tsiaras/uk-road-safety-accidents-and-vehicles), чтобы создать дерево решений, чтобы помочь классифицировать случаи серьезности аварий как серьезные или нет.

Я преобразовал Accident_Severity в двоичный файлиспользуя Slight как 0 и Severe или Fatal как 1. После этого я преобразовал его в целое число. Я также ограничил данные только 2017

Я пытался создать дерево решений, используя rpart, но я постояннополучение 1 узла.

Я использовал

control=rpart.control(minsplit=2, cp=0.000015)

для получения некоторых результатов, но это привело к переобучению дерева. Я также решил исключить переменные, которые не имели большого смысла, такие как долгота /latitude / Accident_Index ...

В конечном итоге я экспериментировал с Junction_Control, Weather_Conditions, Speed_limit, Road_Surface_Conditions, Light_Conditions. Но безрезультатно.

dtree <- rpart(Accident_Severity ~ ., data= acc.train, method="class", parms=list(split="gini"), control=rpart.control(minsplit=2, cp=0.000015))

Где acc.train содержит переменные, перечисленные выше.

В идеале я хотел бы иметь возможность производить дерево как таковое

          CP nsplit rel error    xerror       xstd
1 0.04424779      0 1.0000000 1.0000000 0.05623302
2 0.03539823      3 0.8407080 0.9203540 0.05479830
3 0.01991150      4 0.8053097 0.9115044 0.05462751
4 0.01327434      6 0.7654867 0.8982301 0.05436691
5 0.01032448     10 0.7123894 0.8893805 0.05419020
6 0.01000000     13 0.6814159 0.8893805 0.05419020

Где я могуобрезать дерево, чтобы получить желаемый результат.И провести тесты точности на моем тестовом наборе.

Любая помощь очень ценится

...