Appearance
第1章:逻辑回归
逻辑回归是机器学习中用于二分类问题的一种线性模型,尽管名为“回归”,但它实际上是用于分类的。本章将详细介绍逻辑回归的原理、应用场景以及如何使用Scikit-Learn实现逻辑回归模型。
1.1 逻辑回归原理
1.1.1 线性模型与Sigmoid函数
逻辑回归模型基于线性模型,但其输出通过Sigmoid函数映射到0和1之间,表示为概率。Sigmoid函数的公式为:
1.1.2 概率解释
在二分类问题中,逻辑回归模型的输出可以被解释为样本属于正类的概率。
1.1.3 分类决策
通常,当概率大于0.5时,样本被分类为正类;否则,被分类为负类。
1.2 逻辑回归应用
1.2.1 二分类问题
逻辑回归广泛应用于各种二分类问题,如垃圾邮件检测、疾病诊断等。
1.2.2 多分类问题
虽然逻辑回归最初设计用于二分类,但通过一对多或多对多策略,它也可以扩展到多分类问题。
1.3 逻辑回归代码实现
1.3.1 数据准备
首先,我们需要加载和准备数据集。以鸢尾花数据集为例,我们将使用Scikit-Learn内置的数据集。
python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 只选取两个类别进行二分类
X = X[y != 2]
y = y[y != 2]
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)1.3.2 模型训练
使用Scikit-Learn的LogisticRegression类来训练模型。
python
from sklearn.linear_model import LogisticRegression
# 创建逻辑回归模型实例
logreg = LogisticRegression()
# 训练模型
logreg.fit(X_train, y_train)1.3.3 模型评估
评估模型在测试集上的性能。
python
from sklearn.metrics import accuracy_score
# 在测试集上进行预测
y_pred = logreg.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy:.2f}")1.3.4 预测与结果可视化
对测试集样本进行预测,并可视化结果。
python
import matplotlib.pyplot as plt
# 绘制决策边界
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred, cmap="coolwarm", s=20, edgecolor="k")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")
plt.title("Logistic Regression Decision Boundary")
plt.show()1.4 本章小结
本章介绍了逻辑回归的基本原理、应用场景,并使用Scikit-Learn实现了一个简单的逻辑回归模型。通过数据准备、模型训练、评估和预测,我们可以看到逻辑回归在二分类问题中的有效性。理解逻辑回归的工作原理和代码实现对于深入学习机器学习算法至关重要。
