逻辑回归python代码(逻辑回归 python sklearn)
## 逻辑回归 Python 代码实战指南### 简介逻辑回归 (Logistic Regression) 是一种常用的统计学习方法,主要用于二分类问题,当然也可以扩展到多分类问题。它通过sigmoid函数将线性模型的输出映射到0到1之间,从而预测样本属于某个类别的概率。本文将详细介绍逻辑回归的 Python 代码实现,并结合实际案例进行讲解。### 1. 准备工作#### 1.1 导入必要的库首先,我们需要导入一些必要的 Python 库,包括:-
NumPy
: 用于科学计算,特别是矩阵运算。 -
Pandas
: 用于数据处理和分析。 -
Scikit-learn
: 用于机器学习,包括逻辑回归模型。 -
Matplotlib
: 用于数据可视化。```python import numpy as np import pandas as pd from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score, confusion_matrix import matplotlib.pyplot as plt ```#### 1.2 加载和准备数据接下来,我们需要加载用于训练和测试逻辑回归模型的数据。这里我们使用 iris 数据集作为示例,该数据集包含三种不同类型的鸢尾花的萼片和花瓣的长度和宽度。```python from sklearn.datasets import load_irisiris = load_iris() X = iris.data[:, :2] # 只使用萼片长度和宽度作为特征 y = (iris.target == 0).astype(int) # 将setosa类别设置为1,其他类别设置为0 ```#### 1.3 数据集划分为了评估模型的性能,我们需要将数据集划分为训练集和测试集。```python X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42) ```### 2. 训练逻辑回归模型#### 2.1 创建模型实例```python model = LogisticRegression() ```#### 2.2 训练模型```python model.fit(X_train, y_train) ```### 3. 模型评估#### 3.1 预测测试集```python y_pred = model.predict(X_test) ```#### 3.2 计算准确率```python accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy) ```#### 3.3 混淆矩阵```python cm = confusion_matrix(y_test, y_pred) print("Confusion Matrix:\n", cm) ```### 4. 可视化结果#### 4.1 绘制决策边界```python # 创建网格 x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.01),np.arange(y_min, y_max, 0.01))# 预测网格上的每个点 Z = model.predict(np.c_[xx.ravel(), yy.ravel()]) Z = Z.reshape(xx.shape)# 绘制决策边界 plt.contourf(xx, yy, Z, alpha=0.8)# 绘制训练集和测试集 plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap=plt.cm.Paired, edgecolors='k') plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=plt.cm.Paired, edgecolors='k', marker='x')plt.xlabel('Sepal length') plt.ylabel('Sepal width') plt.title('Logistic Regression Decision Boundary') plt.show() ```### 总结本文介绍了如何使用 Python 实现逻辑回归模型,并通过 iris 数据集进行了演示。我们学习了如何导入必要的库,加载和准备数据,训练模型,评估模型性能,以及可视化结果。这为我们使用逻辑回归解决实际问题奠定了基础。
逻辑回归 Python 代码实战指南
简介逻辑回归 (Logistic Regression) 是一种常用的统计学习方法,主要用于二分类问题,当然也可以扩展到多分类问题。它通过sigmoid函数将线性模型的输出映射到0到1之间,从而预测样本属于某个类别的概率。本文将详细介绍逻辑回归的 Python 代码实现,并结合实际案例进行讲解。
1. 准备工作
1.1 导入必要的库首先,我们需要导入一些必要的 Python 库,包括:- **NumPy**: 用于科学计算,特别是矩阵运算。 - **Pandas**: 用于数据处理和分析。 - **Scikit-learn**: 用于机器学习,包括逻辑回归模型。 - **Matplotlib**: 用于数据可视化。```python import numpy as np import pandas as pd from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score, confusion_matrix import matplotlib.pyplot as plt ```
1.2 加载和准备数据接下来,我们需要加载用于训练和测试逻辑回归模型的数据。这里我们使用 iris 数据集作为示例,该数据集包含三种不同类型的鸢尾花的萼片和花瓣的长度和宽度。```python from sklearn.datasets import load_irisiris = load_iris() X = iris.data[:, :2]
只使用萼片长度和宽度作为特征 y = (iris.target == 0).astype(int)
将setosa类别设置为1,其他类别设置为0 ```
1.3 数据集划分为了评估模型的性能,我们需要将数据集划分为训练集和测试集。```python X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42) ```
2. 训练逻辑回归模型
2.1 创建模型实例```python model = LogisticRegression() ```
2.2 训练模型```python model.fit(X_train, y_train) ```
3. 模型评估
3.1 预测测试集```python y_pred = model.predict(X_test) ```
3.2 计算准确率```python accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy) ```
3.3 混淆矩阵```python cm = confusion_matrix(y_test, y_pred) print("Confusion Matrix:\n", cm) ```
4. 可视化结果
4.1 绘制决策边界```python
创建网格 x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.01),np.arange(y_min, y_max, 0.01))
预测网格上的每个点 Z = model.predict(np.c_[xx.ravel(), yy.ravel()]) Z = Z.reshape(xx.shape)
绘制决策边界 plt.contourf(xx, yy, Z, alpha=0.8)
绘制训练集和测试集 plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap=plt.cm.Paired, edgecolors='k') plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=plt.cm.Paired, edgecolors='k', marker='x')plt.xlabel('Sepal length') plt.ylabel('Sepal width') plt.title('Logistic Regression Decision Boundary') plt.show() ```
总结本文介绍了如何使用 Python 实现逻辑回归模型,并通过 iris 数据集进行了演示。我们学习了如何导入必要的库,加载和准备数据,训练模型,评估模型性能,以及可视化结果。这为我们使用逻辑回归解决实际问题奠定了基础。