Точность классификатора случайного леса не превышает 50% - PullRequest
0 голосов
/ 12 ноября 2018

Я очень новичок в машинном обучении, и я пытаюсь классифицировать этот Набор данных UCI по сердечным заболеваниям , используя случайный лесной классификатор sklearn.Мой подход очень прост, и я хотел спросить, как я могу улучшить свою точность с помощью алгоритма (некоторые советы, ссылки и т. Д.).Моя точность достигает 50% каждый раз.Вот мой код:

import pandas as pd
import numpy as np
import random as random
import sklearn
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

df = pd.read_excel('/Users/Mady/Documents/ClevelandData.xlsx')
df.replace('?', -99999, inplace=True)

labels = df.iloc[:,-1]
labels = labels.values

df.drop(df.columns[len(df.columns)-1], axis=1, inplace=True)
riskFactors = df.values

random.seed(123)
random.shuffle(labels)
random.seed(123)
random.shuffle(riskFactors)

labels_train = labels[:(int(len(labels) * 0.8))]
labels_test = labels[(int(len(labels) * 0.8)):]

riskFactors_train = riskFactors[:(int(len(riskFactors) * 0.8))]
riskFactors_test = riskFactors[(int(len(riskFactors) * 0.8)):]

model = RandomForestClassifier(n_estimators = 1000)
model.fit(riskFactors_train,labels_train)
predicted_labels = model.predict(riskFactors_test)
acc = accuracy_score(labels_test,predicted_labels)
print(acc)

1 Ответ

0 голосов
/ 05 декабря 2018

Решил это, удалив случайную часть, так как там, должно быть, была какая-то ошибка.Как предложил Юйлинь Чжан, я использовал train_test_split, предоставленный sklearn.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...