新闻分类大赛task3

文本表示方法

采用词袋模型进行文本表示,使用sklearn中CountVectorizer函数

from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
    'This is the first document.',
    'This is the second second document.',
    'And the third one.',
    'Is this the first document?',
]
vectorizer= CountVectorizer(max_features=3)
X=vectorizer.fit_transform(corpus)  # fit_transform  数据预处理
print(X.toarray())
print(vectorizer.get_feature_names())   #输出所有文本的关键字

同时,也可以使用sklearn中TfidfVectorizer函数

vectorizer= TfidfVectorizer(ngram_range=(1,3),max_features=3000)

ngram_range(min,max)为n-gram的大小。

基于机器学习的文本分类

首先采用教程给出的线性回归进行分类,由于电脑性能,选用1500条数据,1000条训练,500条测试。

import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.linear_model import RidgeClassifier
from sklearn.metrics import f1_score

train_df = pd.read_csv(r"E:\data\datawhale\train_set.csv", sep='\t', nrows=1500)

vectorizer = CountVectorizer(max_features=3000)
train_test = vectorizer.fit_transform(train_df['text'])

clf = RidgeClassifier()
clf.fit(train_test[:1000], train_df['label'].values[:1000])

val_pred = clf.predict(train_test[1000:])
print(f1_score(train_df['label'].values[1000:], val_pred, average='macro'))

得出F1值为0.64
然后采用xgboost训练,得出f1值为0.68,对比线性回归有一定提升。

from xgboost import XGBClassifier
model = XGBClassifier() # 载入模型(模型命名为model)
model.fit(train_test[:1000], train_df['label'].values[:1000]) # 训练模型(训练集)
y_pred = model.predict(train_test[1000:]) # 模型预测(测试集),y_pred为预测结果
print(f1_score(train_df['label'].values[1000:], y_pred, average='macro'))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XGBoost是一种机器学习算法,可以用于分类和回归任务。它有两种接口:XGBoost原生接口和scikit-learn接口。对于新闻分类任务,你可以使用XGBoost模型来进行分类。 在使用XGBoost进行新闻分类时,你可以考虑调整一些参数以优化模型的性能。其中一些重要的参数包括: - booster: 指定使用的booster类型,可以是gbtree、gblinear或dart。 - n_jobs: 并行运行XGBoost时使用的线程数。 - verbosity: 控制输出的详细程度,取值范围是0(静默)到3(调试)。 - scale_pos_weight: 正负样本权重的平衡。 通过调整这些参数,你可以进一步提升XGBoost模型在新闻分类任务中的表现。 另外,你可以参考一些已有的资源,比如XGBoost与LightGBM文本分类源代码及数据集,来了解更多关于如何使用XGBoost进行新闻分类的实例和数据集。 综上所述,XGBoost可以用于新闻分类任务,你可以调整相关参数来提高模型的性能,并参考相关资源来获取更多实例和数据集。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [XGBoost与LightGBM文本分类](https://blog.csdn.net/asialee_bird/article/details/94836962)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [使用xgboost进行文本分类](https://blog.csdn.net/bitcarmanlee/article/details/123991000)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值