Набор данных Kaggle Titanic. Итак, это последняя часть этой серии, и я расскажу о моделях, которые я решил использовать, и о том, как я хотел сравнить точность между ними, а затем решить выбрать конкретную модель.
Начнем с разделения данных на наборы для обучения и тестирования с помощью sklearn. Мы выбрали функции и сохранили их в переменной predictors. ось = 1 означает, что будут выбраны все столбцы.
from sklearn.model_selection import train_test_split predictors = train_data.drop(['Survived', 'PassengerId'], axis=1) target = train_data["Survived"] x_train, x_val, y_train, y_val = train_test_split(predictors, target, test_size = 0.22, random_state = 0)
Поэтому я решил реализовать модель логистической регрессии, которая является абсолютной основой для начинающих, код для которой приведен ниже, а точность приведена ниже:
# Logistic Regression from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score logreg = LogisticRegression() logreg.fit(x_train, y_train) y_pred = logreg.predict(x_val) acc_logreg = round(accuracy_score(y_pred, y_val) * 100, 2) print(acc_logreg)
Затем я решил использовать классификатор SVM, код которого приведен ниже:
# Support Vector Machines from sklearn.svm import SVC svc = SVC() svc.fit(x_train, y_train) y_pred = svc.predict(x_val) acc_svc = round(accuracy_score(y_pred, y_val) * 100, 2) print(acc_svc)
Следующий классификатор — это линейный классификатор SVC:
# Linear SVC from sklearn.svm import LinearSVC linear_svc = LinearSVC() linear_svc.fit(x_train, y_train) y_pred = linear_svc.predict(x_val) acc_linear_svc = round(accuracy_score(y_pred, y_val) * 100, 2) print("The accuracy of Logistic Regression is {}.".format(acc_linear_svc))
Следующий классификатор, который я использовал, — это классификатор дерева решений:
#Decision Tree from sklearn.tree import DecisionTreeClassifier decisiontree = DecisionTreeClassifier() decisiontree.fit(x_train, y_train) y_pred = decisiontree.predict(x_val) acc_decisiontree = round(accuracy_score(y_pred, y_val) * 100, 2) print("The accuracy of Decision tree is {}.".format(acc_decisiontree))
Следующая модель, которую я решил использовать, — это модель KNN.
# KNN or k-Nearest Neighbors from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier() knn.fit(x_train, y_train) y_pred = knn.predict(x_val) acc_knn = round(accuracy_score(y_pred, y_val) * 100, 2) print("The accuracy of KNN model is {}.".format(acc_knn))
Теперь мы расположим все модели в порядке возрастания их точности, используя следующий фрагмент кода:
models = pd.DataFrame({ 'Model': ['Support Vector Machines', 'KNN', 'Logistic Regression', 'Linear SVC', 'Decision Tree',], 'Score': [acc_svc, acc_knn, acc_logreg, acc_linear_svc, acc_decisiontree,]}) models.sort_values(by='Score', ascending=False)
Из приведенного изображения видно, что дерево решений дает нам самую высокую точность, и его можно улучшить с помощью алгоритма повышения, такого как XGBoost и т. Д.
Это в основном обзор того, как мы можем подойти к ряду проблем. Это все на сегодня. Спасибо за чтение. Продолжай учиться.
Ваше здоровье.