Набор данных 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 и т. Д.

Это в основном обзор того, как мы можем подойти к ряду проблем. Это все на сегодня. Спасибо за чтение. Продолжай учиться.

Ваше здоровье.