招行数字金融挑战赛数据分析赛带赛题二

赛题描述:根据提供的脱敏资讯新闻数据,选手需要对提供的训练集进行特征工程,构建资讯分类模型,对与测试集进行准确的新闻分类。

最终得分:0.8120。十二点关榜没看到排名,估算100+?

训练集很小,只有八千条数据,痛苦了三天,调参加模型效果不升反降。

训练集只有三列:新闻ID,文字,标签,一共四类标签。

根据文本列中的数字个数加入了文本长度特征,能够反映出文本的复杂性或信息量。

python 复制代码
X_train['length'] = X_train['文本'].apply(lambda x: len(str(x).split()))
X_test['length'] = X_test['文本'].apply(lambda x: len(str(x).split()))

文本列使用TfidfVectorizer:将文本数据转换为 TF-IDF 特征。

length列使用StandardScaler:将其转换为均值为 0,标准差为 1 的数值范围。

python 复制代码
preprocessor = ColumnTransformer(
    transformers=[
        ('text_tfidf', TfidfVectorizer(), '文本'),
        ('length_scaler', StandardScaler(), ['length'])
    ],
    remainder='passthrough'
)

选择线性支持向量机作为分类器:

python 复制代码
classifier = LinearSVC(class_weight='balanced', random_state=42, dual=False)

使用 GridSearchCV 来进行超参数调优。

python 复制代码
param_grid = {
    'preprocessor__text_tfidf__ngram_range': [(1, 2)],
    'preprocessor__text_tfidf__max_features': [50000, 70000, 90000],
    'preprocessor__text_tfidf__min_df': [1, 2, 3],
    'preprocessor__text_tfidf__max_df': [0.85, 0.9, 0.95],
    'classifier__C': [0.5, 1.0, 2.0, 5.0, 8.0, 10.0],
}

ngram_range: 设置为 (1, 2),表示我们使用 1-gram 和 2-gram(单词和双词组合)来表示文本特征。

max_features: 控制 TfidfVectorizer 中考虑的最大特征数量。尝试不同的值可以帮助我们找到最佳的特征数量。

min_df 和 max_df: 这些参数控制了 TfidfVectorizer 在选择特征时的文档频率范围,有助于排除低频和高频的噪声词汇。

C: 正则化参数,控制模型的复杂度和对训练数据的拟合程度。

对模型进行了多次交叉验证,以选择最佳参数组合。

python 复制代码
grid_search = GridSearchCV(pipeline, param_grid, cv=cv_strategy,
                           scoring='f1_macro',
                           n_jobs=-1,
                           verbose=2)
best_model = grid_search.best_estimator_
predictions = best_model.predict(X_test)

小白第一次参加类似比赛,大佬轻喷。

相关推荐
冷雨夜中漫步8 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴8 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再8 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
李慕婉学姐8 小时前
【开题答辩过程】以《基于社交网络用户兴趣大数据分析》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
数据挖掘·数据分析
颜酱9 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
m0_7369191010 小时前
C++代码风格检查工具
开发语言·c++·算法
yugi98783810 小时前
基于MATLAB强化学习的单智能体与多智能体路径规划算法
算法·matlab
喵手10 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
2501_9449347310 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy10 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python