朴素贝叶斯和SvM做中文文本分类,k折交叉验证

"""
朴素贝叶斯
我们试试用朴素贝叶斯完成一个中文文本分类器,一般在数据量足够,数据丰富度够的情况下,用朴素贝叶斯完成这个任务,准确度还是很不错的。

机器学习的算法要取得好效果,离不开数据,咱们先把数据加载进来看看。

准备数据
准备好数据,我们挑选 科技、汽车、娱乐、军事、运动 总共5类文本数据进行处理。
"""
import jieba
import pandas as pd
df_technology = pd.read_csv("./data/technology_news.csv", encoding='utf-8')
df_technology = df_technology.dropna()

df_car = pd.read_csv("./data/car_news.csv", encoding='utf-8')
df_car = df_car.dropna()

df_entertainment = pd.read_csv("./data/entertainment_news.csv", encoding='utf-8')
df_entertainment = df_entertainment.dropna()

df_military = pd.read_csv("./data/military_news.csv", encoding='utf-8')
df_military = df_military.dropna()

df_sports = pd.read_csv("./data/sports_news.csv", encoding='utf-8')
df_sports = df_sports.dropna()

technology = df_technology.content.values.tolist()[1000:21000]
car = df_car.content.values.tolist()[1000:21000]
entertainment = df_entertainment.content.values.tolist()[:20000]
military = df_military.content.values.tolist()[:20000]
sports = df_sports.content.values.tolist()[:20000]

"""
分词与中文文本处理
停用词
"""
stopwords=pd.read_csv("data/stopwords.txt",index_col=False,quoting=3,sep="\t",names=['stopword'], encoding='utf-8')
stopwords=stopwords['stopword'].values

def preprocess_text(content_lines, sentences, category):
    for line in content_lines:
        try:
            segs=
  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
KNN(K-Nearest Neighbors)算法、决策树(ID3/ CART)、SVM(Support Vector Machine)、朴素贝叶斯(Naive Bayes)、K均值聚类(K-Means)都是常用的机器学习算法,它们在实现鸢尾花分类时都有各自的优势和适用场景。 1. KNN算法:简单直观,对于小数据集或者特征简单的分类问题表现良好,但计算复杂度随着数据集大小增加而增加。 2. 决策树(如ID3):易于理解和解释,能够处理离散和连续特征,但可能容易过拟合,需要剪枝。 3. ID3算法是决策树的一种基础版本,CART(Classification and Regression Trees)是改进版,通常指代决策树算法。 4. SVM:在高维空间中表现优秀,通过最大化间隔来实现分类,对于线性和非线性数据都有效,但对参数敏感。 5. 朴素贝叶斯:基于概率论,假设特征之间独立,适合处理大量文本分类,对少量训练数据效果也不错,但在某些情况下独立性假设不成立时性能会下降。 6. K均值:无监督学习方法,用于聚类而非分类,但它可以作为预处理步骤来帮助选择合适的分类器。 在鸢尾花分类问题上,由于鸢尾花数据集是一个典型的多类分类任务,且特征数量适中,许多算法都可以胜任。然而,SVM和决策树(尤其是CART或随机森林,它基于多个决策树)通常是表现较好的选择,因为它们能处理不同类型的特征,并且有良好的泛化能力。KNN也常用于简单分类问题,如果数据集足够小且计算资源允许。朴素贝叶斯在数据量较大、特征独立性成立的情况下,也是一个不错的选择。 最优算法取决于具体的数据集特性、规模、噪声水平以及所需的解释性等因素。实践中可能会尝试几个不同的算法,通过交叉验证等方法选择表现最佳的模型。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值