Ниже приводится пустышка pandas.DataFrame
, например:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
df = pd.DataFrame({'X1':[100,120,140,200,230,400,500,540,600,625],
'X2':[14,15,22,24,23,31,33,35,40,40],
'Y':[0,0,0,0,1,1,1,1,1,1]})
Здесь у нас есть 3 столбца, X1,X2,Y
предположим, X1 & X2
- ваши независимые переменные, а столбец 'Y'
- ваша зависимая переменная.
X = df[['X1','X2']]
y = df['Y']
С помощью sklearn.model_selection.train_test_split
вы создаете 4 порции данных, которые будут использоваться для подгонки и прогнозирования значений.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.4,random_state=42)
X_train, X_test, y_train, y_test
Сейчас
1) , X_train - Это включает все ваши независимые переменные, они будут использоваться для обучения модели, также как мы указали test_size = 0.4
, это означает, что 60%
наблюдений из ваших полных данных будет использоваться для обучения / подгонки Модель и отдых 40%
будут использоваться для тестирования модели.
2). X_test - это оставшаяся 40%
часть независимых переменных из данных, которые не будут использоваться на этапе обучения и будут использоваться для составления прогнозов для проверки точности модели.
3). y_train - это ваша зависимая переменная, которую нужно прогнозировать с помощью этой модели, она включает в себя метки категорий относительно ваших независимых переменных, нам необходимо указать нашу зависимую переменную при обучении / подборе модели.
4). y_test - эти данные имеют метки категорий для ваших тестовых данных, эти метки будут использоваться для проверки точности между фактическими и прогнозируемыми категориями.
Теперь вы можете подогнать модель по этим данным, давайте подгоним sklearn.linear_model.LogisticRegression
logreg = LogisticRegression()
logreg.fit(X_train, y_train) #This is where the training is taking place
y_pred_logreg = logreg.predict(X_test) #Making predictions to test the model on test data
print('Logistic Regression Train accuracy %s' % logreg.score(X_train, y_train)) #Train accuracy
#Logistic Regression Train accuracy 0.8333333333333334
print('Logistic Regression Test accuracy %s' % accuracy_score(y_pred_logreg, y_test)) #Test accuracy
#Logistic Regression Test accuracy 0.5
print(confusion_matrix(y_test, y_pred_logreg)) #Confusion matrix
print(classification_report(y_test, y_pred_logreg)) #Classification Report
Подробнее о показателях можно прочитать здесь
Подробнее о разбивке данных здесь
Надеюсь, это поможет :)