前言
多分类问题是机器学习中的一种常见任务,其目标是将输入数据分配到三个或更多预定义的类别之中。解决这类问题的方法包括一对一(One-vs-One, OvO)和一对多(One-vs-All, OvA 或 One-vs-Rest, OvR)策略,前者通过构建多个分类器来比较每对类别,后者则是为每个类别构建一个分类器以区别该类别和其他所有类别。这些技术有助于从给定的训练数据集中学习分类模型,并在新的未知数据上进行准确的预测。
任务介绍
今天就带大家了解一下多分类问题,前面两个帖子讲的都是回归问题,本次任务是在sklearn的数据库中抓取20个类别新闻数据集,创建一个逻辑回归模型,将文本数据转化为特征向量,使用模型训练该数据,将训练好的模型对新的数据集进行预测,最后计算预测值与真实值之间的准确度。
逻辑回归与线性回归区别
1. 目标变量类型 线性回归:适用于连续型目标变量。预测的结果是一个数值范围内的值。 逻辑回归:适用于二分类或多元分类问题。预测的是类别标签的概率。 2. 模型输出 线性回归:输出是一个实际的数值,比如房价、销售额等。 逻辑回归:输出是一个介于0和1之间的概率值,表示某个样本属于某一类别的概率。 3. 损失函数 线性回归:常用最小二乘误差作为损失函数。 逻辑回归:使用对数似然损失函数(也称为交叉熵损失函数)。
代码解析
from sklearn.datasets import fetch_20newsgroups # 在sklearn数据库中抓取20个类别的新闻数据
from sklearn.pipeline import make_pipeline
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
首先导入训练模型所需要的库
pip install -U scikit-learn
该指令用于终端下载sklearn库,scikit-learn 是一个广泛使用的 Python 库,主要用于机器学习任务。它提供了大量的工具和算法,可以轻松地实现数据预处理、特征选择、模型训练、模型评估等一系列机器学习流程。
sklearn.datasets.fetch_20newsgroups 是一个函数,它用于从互联网上获取 "20 Newsgroups" 数据集 包含