ML |逻辑回归 v/s 决策树分类
原文:https://www . geesforgeks . org/ml-logistic-回归-v-s-决策树-分类/
逻辑回归和决策树分类是当今使用的两种最流行和最基本的分类算法。没有一种算法比另一种更好,一种算法的优异性能通常归功于所处理数据的性质。
我们可以在不同的类别上比较这两种算法–
| 标准 | 逻辑回归 | 决策树分类 | | --- | --- | --- | | **可解释性** | 不太容易解释 | 更容易解释 | | **决策边界** | 线性和单一决策边界 | 将空间分成更小的空间 | | **决策的简易性** | 必须设置决策阈值 | 自动处理决策 | | **过拟合** | 不容易过度拟合 | 容易过度拟合 | | **对噪声的鲁棒性** | 对噪声鲁棒 | 主要受噪音影响 | | **可扩展性** | 需要足够大的训练集 | 可以在一个小的训练集上训练 |作为一个简单的实验,我们在同一数据集上运行这两个模型,并比较它们的性能。
步骤 1:导入所需的库
Python 3
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
第二步:读取并清理数据集
Python 3
cd C:\Users\Dev\Desktop\Kaggle\Sinking Titanic
# Changing the working location to the location of the file
df = pd.read_csv('_train.csv')
y = df['Survived']
X = df.drop('Survived', axis = 1)
X = X.drop(['Name', 'Ticket', 'Cabin', 'Embarked'], axis = 1)
X = X.replace(['male', 'female'], [2, 3])
# Hot-encoding the categorical variables
X.fillna(method ='ffill', inplace = True)
# Handling the missing values
第三步:训练和评估逻辑回归模型
Python 3
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size = 0.3, random_state = 0)
lr = LogisticRegression()
lr.fit(X_train, y_train)
print(lr.score(X_test, y_test))
第四步:训练和评估决策树分类器模型
Python 3
criteria = ['gini', 'entropy']
scores = {}
for c in criteria:
dt = DecisionTreeClassifier(criterion = c)
dt.fit(X_train, y_train)
test_score = dt.score(X_test, y_test)
scores = test_score
print(scores)
通过比较得分,我们可以看到逻辑回归模型在当前数据集上表现更好,但情况可能并非总是如此。
版权属于:月萌API www.moonapi.com,转载请注明出处