首页 > 其他分享 >模式识别小课设:基于 TF-IDF 与 Logistic 回归的新闻文本五分类引擎

模式识别小课设:基于 TF-IDF 与 Logistic 回归的新闻文本五分类引擎

时间:2024-12-14 21:31:36浏览次数:9  
标签:texts test labels label 小课 range train Logistic IDF

代码如下:

import os
import numpy as np
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# 定义新闻类别
categories = ["军事", "经济", "文化", "科学", "娱乐"]

# 文件路径
data_folder = "E:/news"

# 读取数据函数
def load_data(data_folder, categories, train_range, test_range):
    train_texts, train_labels = [], []
    test_texts, test_labels = [], []
    for category in categories:
        folder_path = os.path.join(data_folder, category)
        for i in range(1, 26):  # 文件从1到25
            file_path = os.path.join(folder_path, f"{i}.txt")
            with open(file_path, 'r', encoding='utf-8') as file:
                content = file.read()
                if i in train_range:
                    train_texts.append(content)
                    train_labels.append(category)
                elif i in test_range:
                    test_texts.append(content)
                    test_labels.append(category)
    return train_texts, train_labels, test_texts, test_labels

# 加载数据
train_range = range(1, 21)  # 训练集范围:1-20
test_range = range(21, 26)  # 测试集范围:21-25
train_texts, train_labels, test_texts, test_labels = load_data(data_folder, categories, train_range, test_range)

# 特征提取
vectorizer = TfidfVectorizer(max_features=5000)  # 限制最大特征数
X_train = vectorizer.fit_transform(train_texts)
X_test = vectorizer.transform(test_texts)

# 标签映射
label_mapping = {category: i for i, category in enumerate(categories)}
y_train = np.array([label_mapping[label] for label in train_labels])
y_test = np.array([label_mapping[label] for label in test_labels])

# 训练逻辑回归模型
model = LogisticRegression(max_iter=1000, solver='lbfgs', multi_class='ovr')
model.fit(X_train, y_train)

# 测试预测
y_pred = model.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("Logistic回归模型测试集准确率:", accuracy)
print(y_pred)
print(y_test)

结果如下:

正确率达到80%,初步估计是因为数据太少,这里只选用了120份数据。采用更多数据学习效果会更好。

标签:texts,test,labels,label,小课,range,train,Logistic,IDF
From: https://blog.csdn.net/2302_76500884/article/details/144476545

相关文章

  • 书缘·基金小课堂
    基金小课堂文件名:基金小课堂.epub获取:GitHub,仓库:yxiang内容:<divclass="sgc-toc-title">目录</div><divclass="sgc-toc-level-1"><ahref="vinfo.xhtml">制作信息</a></div><divclass="sgc-toc-level-1&q......
  • IDF安装指南
    1.IDF开发环境搭建本章,我们将进入实际操作阶段,逐步搭建ESP-IDF的开发环境。为了安装ESP32的开发环境,我们需要前往乐鑫官方的Windows安装下载中心下载ESP32-IDF安装包。在这里,我们推荐下载离线的安装包,虽然安装速度可能会稍慢一些,但它能够确保安装的成功率。相比之下,在线的......
  • 线性分类器全解析:Logistic 回归、Softmax 回归、感知器和支持向量机
    引言在机器学习中,线性分类器是一种经典而高效的分类方法,能够在特征空间中寻找一条(或一个超平面)来区分不同类别的数据点。它是现代机器学习模型的基石,同时为许多复杂模型(如神经网络)奠定了理论基础。本文将详细解析四种常见的线性分类器——Logistic回归、Softmax回归、感知......
  • ESP32-IDF GPIO 专题
    目录一、基本介绍1、配置结构体2、API2.1gpio_config2.2gpio_reset_pin2.3gpio_set_intr_type2.4gpio_intr_enable2.5gpio_intr_disable2.6gpio_set_level2.7gpio_get_level2.8gpio_set_direction2.9gpio_set_pull_mode2.10gpio_isr_register2.11gpio_install......
  • 机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
    机器学习面试笔试知识点-线性回归、逻辑回归LogisticsRegression和支持向量机SVM一、线性回归1.线性回归的假设函数2.线性回归的损失函数(LossFunction)两者区别3.简述岭回归与Lasso回归以及使用场景4.什么场景下用L1、L2正则化5.什么是ElasticNet回归6.ElasticNet回归......
  • 逻辑回归LogisticRegression
    一、逻辑回归的基础介绍逻辑回归是一个分类模型它可以用来预测某件事发生是否能够发生。分类问题是生活中最常见的问题:生活中:比如预测上证指数明天是否会上涨,明天某个地区是否会下雨,西瓜是否熟了金融领域:某个交易是否涉嫌违规,某个企业是否目前是否违规,在未来一段时间内是否......
  • 浅谈 DFT、IDFT、NTT
    DFT(离散傅里叶变换)多项式分治。最早可能是由高斯发现的多项式可以分治,但他的手稿并未作为论文发表。考虑多项式\(F(x)=a_0+a_1x^{1}+a_2x^{2}+\cdots+a_{n-1}x^{n-1}\)其中\(n=2^{k}\(k\geq0)\)。(任意多项式可以通过高位补\(0\)化为这个形式。)......
  • 基于IDF的ESP32S3-LVGL DEMO移植
    简介ESP32-32出色的性价比,较好的性能与内存空间,可以好利用来完成GUI显示库的加载LVGLLVGL是一款比较流行的致力于MCU与MPU创建漂亮UI的嵌入式图形库,免费且开源。硬件硬件采用的是正点原子的ESP32-S3屏幕使用的是SPI通信方式,配合IO口控制(RST,A0),来实现LCD屏幕的驱动移植步骤......
  • Android使用LiquidFun物理引擎实现果冻碰撞效果
    一、效果展示Android使用LiquidFun物理引擎实现果冻碰撞效果二、LiquidFun物理引擎简介LiquidFun是一个由Google开发并开源的2D物理模拟库,它基于Box2D物理引擎,并扩展了流体模拟的功能。流体动力学模拟:LiquidFun提供了强大的流体动力学系统,可以模拟流体的行为,包括液体......
  • TF-IDF(词频-逆文档词频)
    目录1.算法公式1.1TF(词频)1.2IDF(逆文档词频)2.算法使用2.1API使用2.2API工作3.参数详解3.1文档处理相关参数3.2词表构建相关参数3.3影响计算相关参数TF-IDF(TermFrequency–InverseDocumentFrequency)是一种用于信息检索与文本挖掘的常用技术。通过......