Python逻辑回归实现多分类

多分类介绍

多分类由二分类问题推广而来,我们可以把N分类问题分解为N个2分类问题。下面我们用代码实现一个简单三分类问题,其中y为n行3列的矩阵,其中0表示不属于该类1表示属于该类。代码中用到的矩阵乘法,不会的同学自行补课。

代码实现

# coding=utf-8
import random
import matplotlib.pyplot as plt
import numpy as np

x, y = [], []
x_test1, x_test2, x_test3 = [], [], []

# 随机生成3种不同分类的点,分别打上标签存在y中
for i in range(0, 20):
    x1 = random.random()
    x2 = random.random()
    if x1 + x2 < 1:
        x.append([x1, x2, 1])
        x_test1.append([x1, x2])
        y.append([1, 0, 0])

    x.append([x1 * 2, x2 + 1, 1
### 使用 Python 实现逻辑回归进行多分类 为了实现逻辑回归用于多分类问题,通常采用一对其余(One-vs-Rest, OvR)或多类逻辑回归的方法。OvR策略涉及训练多个二元分类器,每个类别对应一个分类器,在预测阶段选择具有最高置信度分数的类别作为最终输出。 下面是一个基于 `scikit-learn` 库实现逻辑回归多分类的例子: ```python from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression import numpy as np # 创建模拟数据集 X, y = make_classification(n_samples=1000, n_features=20, n_informative=2, n_redundant=10, n_classes=3, random_state=1) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42) # 初始化并配置逻辑回归模型多分类模式 classifier = LogisticRegression(multi_class='ovr', solver='lbfgs') # 训练模型 classifier.fit(X_train, y_train) # 预测新样本所属类别 predictions = classifier.predict(X_test) # 输出部分预测结果与真实标签对比 print(f'Predicted classes: {predictions[:10]}') print(f'True classes : {y_test[:10].tolist()}') # 获取各分类的概率估计值 probabilities = classifier.predict_proba(X_test) print('Probabilities for each class:') print(probabilities[:5]) ``` 上述代码展示了如何利用 `LogisticRegression` 类中的参数设置来处理多分类任务[^1]。这里选择了 'ovr'(one-versus-rest) 方法,并指定了优化求解器为 'lbfgs'[^2]。此外还提供了获取每种类别概率得分的功能,这对于评估模型性能非常有用[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值