Тестирование модели прогнозирования с пользовательским вводом - PullRequest
0 голосов
/ 05 ноября 2019

Я новичок в ML, однако я делал проект для колледжа и успешно смог обучить модель, но я не уверен, как я могу проверить пользовательский ввод. Мой проект состоит в том, чтобы проверить, являются ли данные, введенные для человека, диабетом или нет.

Данные CSV:

Pregnancies Glucose BloodPressure SkinThickness Insulin BMI DiabetesPedigreeFunction Age Outcome
6   148 72  35  0   33.6    0.627   50  1
1   85  66  29  0   26.6    0.351   31  0
8   183 64  0   0   23.3    0.672   32  1
1   89  66  23  94  28.1    0.167   21  0
0   137 40  35  168 43.1    2.288   33  1
5   116 74  0   0   25.6    0.201   30  0
3   78  50  32  88  31  0.248   26  1
10  115 0   0   0   35.3    0.134   29  0
2   197 70  45  543 30.5    0.158   53  1

enter image description here

Код:

from sklearn.ensemble import RandomForestClassifier
random_forest_model = RandomForestClassifier(random_state=10)
random_forest_model.fit(X_train, y_train.ravel())

predict_train_data = random_forest_model.predict(X_test)
from sklearn import metrics
print("Accuracy = {0:.3f}".format(metrics.accuracy_score(y_test, predict_train_data)))

Код для ввода пользователя:

print("Enter your own data to test the model:")
pregnancy = int(input("Enter Pregnancy:"))
glucose = int(input("Enter Glucose:"))
bloodpressure = int(input("Enter Blood Pressue:"))
skinthickness = int(input("Enter Skin Thickness:"))
insulin = int(input("Enter Insulin:"))
bmi = float(input("Enter BMI:"))
DiabetesPedigreeFunction = float(input("Enter DiabetesPedigreeFunction:"))
age = int(input("Enter Age:"))
userInput = [pregnancy, glucose, bloodpressure, skinthickness, insulin, bmi, 
DiabetesPedigreeFunction, age]

Я хочу этовозврат 1 - если диабет или 0 - если не диабет


РЕДАКТИРОВАТЬ - добавлены x_train и y_train:

from sklearn.model_selection import train_test_split
feature_columns = ['Pregnancies', 'Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI', 'DiabetesPedigreeFunction', 'Age']
predicted_class = ['Outcome']

X = data[feature_columns].values
y = data[predicted_class].values

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.30, random_state=10)

from sklearn.ensemble import RandomForestClassifier
random_forest_model = RandomForestClassifier(random_state=10)
random_forest_model.fit(X_train, y_train.ravel())

1 Ответ

1 голос
/ 05 ноября 2019

Попробуйте

result = random_forest_model.predict([user_input])[0]

, поскольку модель ожидает несколько входных данных (двумерный массив) и возвращает прогноз для каждого элемента (список наблюдений).

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