Я новичок в ML, я не понимаю, что sklearn часть - PullRequest
0 голосов
/ 05 ноября 2019

что мы делаем в строке 10 train, test = train_test_split(data, test_size=0.2)?

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB as gnb
from sklearn.metrics import accuracy_score
data = pd.read_csv(r'C:\Users\avina\OneDrive\Desktop\New folder\program2_diabetes-20191105T144141Z-001\program2_diabetes\die.csv')
print (data.describe())

features = ['Pregnancies', 'Glucose', 'BloodPressure', 'SkinThickness', 'BMI', 'Age', 'Insulin', 'DiabetesPedigreeFunction']
target = 'Class'
train, test = train_test_split(data, test_size=0.2)
clf = gnb().fit(train[features], train[target]) 
y_predicted = clf.predict(test[features])
print ("Accuracy ",round(accuracy_score(test[target], y_predicted)*100,2)," %")

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

Идея заключается в том, чтобы разбить данные на два набора:

  • Обучающий набор: набор, который мы используем для обучения нашей модели с целью настройки значений ее параметров для корректировки данных.
  • Валидационный набор: набор, который мы используем для проверки производительности нашей модели, корректирующих данные, которые он не видел раньше.

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

0 голосов
/ 05 ноября 2019

train, test = train_test_split(data, test_size=0.2)

Он разбивает ваш фрейм данных на 2 меньших, один из которых содержит 80% оригинала (поезд) и 20% (тест).

Вы можете проверить с помощьюформировать и утверждать, что все есть с

train.shape[0] + test.shape[0] == data.shape[0]

...