数据结构与算法之逻辑回归 评估指标 准确率 / ROC AUC 应用指南

数据结构与算法阿木 发布于 28 天前 5 次阅读


摘要:

逻辑回归是一种广泛应用于分类问题的统计方法。在模型评估过程中,准确率和ROC-AUC是两个重要的评估指标。本文将围绕这两个指标,通过Python代码实现逻辑回归模型,并详细解析如何使用准确率和ROC-AUC进行模型评估。

一、

逻辑回归是一种经典的二元分类模型,广泛应用于实际应用中。在模型训练完成后,我们需要对模型进行评估,以确定其性能。准确率和ROC-AUC是两个常用的评估指标,它们分别从不同的角度反映了模型的性能。

二、逻辑回归模型实现

我们需要实现一个简单的逻辑回归模型。以下是一个基于Python的简单逻辑回归实现:

python

import numpy as np

class LogisticRegression:


def __init__(self, learning_rate=0.01, epochs=1000):


self.learning_rate = learning_rate


self.epochs = epochs


self.weights = None


self.bias = None

def fit(self, X, y):


num_samples, num_features = X.shape


self.weights = np.zeros(num_features)


self.bias = 0

for _ in range(self.epochs):


model_output = self.predict(X)


error = y - model_output


self.weights += self.learning_rate np.dot(error, X.T)


self.bias += self.learning_rate np.sum(error)

def predict(self, X):


linear_model = np.dot(X, self.weights) + self.bias


y_predicted = 1 / (1 + np.exp(-linear_model))


y_predicted_cls = [1 if i > 0.5 else 0 for i in y_predicted]


return y_predicted_cls

def predict_prob(self, X):


linear_model = np.dot(X, self.weights) + self.bias


y_predicted = 1 / (1 + np.exp(-linear_model))


return y_predicted


三、准确率评估

准确率是衡量模型性能的一个简单指标,它表示模型正确预测的样本数占总样本数的比例。以下是如何使用准确率评估逻辑回归模型:

python

def accuracy(y_true, y_pred):


return np.sum(y_true == y_pred) / len(y_true)


四、ROC-AUC评估

ROC-AUC(Receiver Operating Characteristic - Area Under Curve)是另一个重要的评估指标,它反映了模型在不同阈值下的性能。以下是如何使用ROC-AUC评估逻辑回归模型:

python

from sklearn.metrics import roc_auc_score

def roc_auc(y_true, y_pred_prob):


return roc_auc_score(y_true, y_pred_prob)


五、代码示例

以下是一个使用逻辑回归模型进行分类,并使用准确率和ROC-AUC进行评估的完整代码示例:

python

导入数据


X = np.array([[1, 2], [2, 3], [3, 4], [4, 5], [5, 6]])


y = np.array([0, 0, 1, 1, 1])

创建逻辑回归模型


model = LogisticRegression()

训练模型


model.fit(X, y)

预测概率


y_pred_prob = model.predict_prob(X)

计算准确率


y_pred = model.predict(X)


accuracy_score = accuracy(y, y_pred)


print("Accuracy:", accuracy_score)

计算ROC-AUC


roc_auc_score = roc_auc(y, y_pred_prob)


print("ROC-AUC:", roc_auc_score)


六、总结

本文介绍了逻辑回归模型,并详细解析了如何使用准确率和ROC-AUC进行模型评估。通过Python代码实现,我们可以方便地对逻辑回归模型进行评估,从而选择性能更好的模型。

注意:本文中的代码仅为示例,实际应用中可能需要根据具体问题进行调整。