模型调优及模型融合

1)进一步通过网格搜索法对3个模型进行调优(用5000条数据,调参时采用五折交叉验证的方式),并进行模型评估,展示代码的运行结果。(可以尝试使用其他模型)
2)模型融合,模型融合方式任意,并结合之前的任务给出你的最优结果。
例如Stacking融合,用你目前评分最高的模型作为基准模型,和其他模型进行stacking融合,得到最终模型及评分结果。

在模型调参的过程中,需要使用到网格搜索(Grid Search)方法。为什么要交Grid Search呢? 其实就是一种穷举搜索:在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果。

以有两个参数的模型为例,参数a有3种可能,参数b有4种可能,把所有可能性列出来,可以表示成一个3*4的表格,其中每个cell就是一个网格,循环过程就像是在每个网格里遍历、搜索,所以叫Grid Search。

Grid Search是一种我们常用的来寻找模型参数的方法,通过不断地组合去试验找到最好的参数。但是,我个人觉得其挺浪费时间的。和Grid Search相对的有另外一种调参方法叫做随机搜索(Random Search)。

RandomizedSearch实现了对参数的随机搜索, 其中每个设置都是从可能的参数值的分布中进行取样。 这对于穷举搜索有两个主要优势:

  1. 可以选择独立于参数个数和可能值的预算
  2. 添加不影响性能的参数不会降低效率
    以上的两个方法都已经在Python中得到了封装,我们只需要调用即可。通常,我们可以先使用随机搜索从一个大范围内发现一个小范围,然后再在这个小范围内进行更加精确的网格搜索。而对于,连续性的变量,随机搜索可能会更加地合适。
print ("----------程序开始运行!!!------------")
import pickle
import pandas as pd
import time
from sklearn.externals import joblib
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import  train_test_split
time_start = time.time()import warnings
warnings.filterwarnings("ignore")
def f1_score_vali(preds, data_vali):labels = data_vali.get_label()preds = np.argmax(preds.reshape(19, -1), axis=0)score_vali = f1_score(y_true=labels, y_pred=preds, average='macro')return 'f1_score', score_vali, True
"""=====================================================================================================================
0 读取特征
"""
print("0 读取特征")
data_fp = open( "data_w_tfidf.pkl", 'rb')
x_train, y_train, x_test = pickle.load(data_fp)xTrain, xTest, yTrain, yTest = train_test_split(x_train, y_train, test_size=0.30, random_state=531)"""=====================================================================================================================
1 模型训练(模型调参)
"""
print("模型训练")params = {'penalty':['l2', 'l1'], 'C':[90,100,120,130,140]}
lr = LogisticRegression(C=120,dual=False)
gsearch = GridSearchCV(estimator=lr, param_grid=params, scoring='f1_macro', n_jobs=1, cv=5, verbose=3)
gsearch.fit(xTrain, yTrain)print('最佳参数:',gsearch.best_params_)
print('训练集的最佳分数:', gsearch.best_score_)
print('测试集的最佳分数:', gsearch.score(xTest, yTest))"""=====================================================================================================================
2 保存模型
"""
print('2 保存模型')
joblib.dump(lr,"LR(120)_data_w_tfidf.m")"""=====================================================================================================================
3 预测结果
"""
print("预测结果")
y_test = lr.predict(x_test)"""=====================================================================================================================
4 保存结果
"""
print("保存结果")
y_test = [i+1 for i in y_test.tolist()]
df_result = pd.DataFrame({'id':range(5000),'class':y_test})df_result.to_csv('LR(c120)_data_w_tfidf.csv',index=False)time_end = time.time()
print('共耗时:{:.2f}min'.format((time_end-time_start)/60))


参考:https://blog.csdn.net/u012914436/article/details/89132931#datawhale_day03

达观杯文本智能处理(6)相关推荐

  1. 第三届“达观杯”文本智能信息抽取挑战赛丰厚奖金,群英集结,等你来战!...

    近日,第三届"达观杯"文本智能信息抽取挑战赛正式上线启动(点击阅读原文,跳转报名页面),6月28日至8月31日,面向所有参赛选手开放竞赛结果提交.本届"达观杯" ...

  2. 【数据竞赛】“达观杯”文本智能处理挑战赛1

    一.数据竞赛简介 "达观杯"文本智能处理挑战赛 1.任务 建立模型通过长文本数据正文(article),预测文本对应的类别(class) 2.数据 传送门:链接: https:// ...

  3. 第三届“达观杯”文本智能算法大赛参赛指南

    比赛介绍 2019 年 6 月 28 日,第三届"达观杯"文本智能信息抽取挑战赛正式开赛,同期面向参赛选手开放竞赛结果提交.本届比赛由中国人工智能学会吴文俊人工智能科学技术奖办公室 ...

  4. “达观杯”文本智能处理挑战赛代码示例

    达观杯介绍: 类似kaggle的数据科学比赛,任何人可以参加 网址:http://www.dcjingsai.com/ 可以用支付宝实名注册 项目名称: "达观杯"文本智能处理挑战 ...

  5. 达观杯”文本智能处理挑战赛

    竞赛信息 1.网址 http://www.dcjingsai.com/common/cmpt/"达观杯"文本智能处理挑战赛_竞赛信息.html 2.任务 建立模型通过长文本数据正文 ...

  6. “达观杯”文本智能处理挑战赛,季军带你飞

    来自AI小白入门 前段时间和朋友何从庆(AI算法之心)等队友一起组队参加了这个比赛,本来以为小比赛人少,没想到参加的人会有几千人.最后我们队伍取得季军(4st/3131),虽有些许遗憾,但是也很荣幸认 ...

  7. “达观杯”文本智能处理挑战赛

         (本内容转载自公众号"科技与Python") 2018年人工智能的发展在运算智能和感知智能已经取得了很大的突破和优于人类的表现.而在以理解人类语言为入口的认知智能上,目前 ...

  8. 【数据竞赛】“达观杯”文本智能处理挑战赛2

    文章目录 一.TF_IDF原理 1.TF(item frequency) 2.逆向文件频率IDF(inverse document frequency) 3.TF-IDF 二.TF-IDF算法实现 1 ...

  9. 【数据竞赛】“达观杯”文本智能处理挑战赛4

    一.逻辑回归 逻辑回归(Logistic Regression, LR)是一种常用的处理两类分类问题的线性模型. 1.概率估计 LR 模型计算输入特征的加权和(加上偏差项),之后将中间结果输入 log ...

  10. 【数据竞赛】“达观杯”文本智能处理挑战赛3

    一.语言模型 在统计自然语言处理中,语言模型指的是计算一个句子的概率模型. 传统的语言模型 词的表示是原始的.面向字符串的. 向量角度:更高维.更稀疏的向量.若词汇表大小为 NNN,每个字符串形式的词 ...

最新文章

  1. vector的基本用法 (详解 + 代码演示)
  2. 征途pak文件修改_传奇技能,第十四祭:装备属性修改与增加新装备
  3. linux-新建一个centos虚拟机系统-安装全过程图示
  4. matplotlib之scatter
  5. 索尼Xperia 5 II官方高清渲染图曝光:还是那个熟悉的小屏旗舰
  6. SAP License:SAP 成本管理专题
  7. 业务人员不知道如何提出 BI 需求,老板不重视 BI 项目怎么办?
  8. VLAN与Trunk
  9. oracle database link
  10. 详解条件概率,全概率,贝叶斯公式
  11. 工作环境配置及putty工具常见设置
  12. 几万年前,孙悟空的一次删库跑路...
  13. 由legacy+MBR改为UEFI+GPT引导方式
  14. 1.1XAF框架开发视频教程-简单的订单管理实现过程,视频,提纲,及教程源码
  15. Roslyn 语法树中的各种语法节点及每个节点的含义
  16. 计算机原理课设,计算机组成原理课设文档
  17. 推荐一个好用的免费空间。
  18. 2020第二篇TED:The case for student health days
  19. 2020 ACM-ICPC澳门区域赛 B Boring Problem 主元法
  20. 华为云搭建web服务器(WordPress)

热门文章

  1. 20190922 On Java8 第二十一章 数组
  2. uwsgi基础——参数
  3. iBATIS使用$和#的一些理解
  4. IOS之Objective-C学习 工厂模式
  5. 至linuxNIC添加多个IP
  6. Coolite的Combobox智能检索应用指南
  7. 第九篇 IO流技术(九)
  8. Linux虚拟机下mysql 5.7安装配置方法图文教程
  9. selenium+log4j+eclipse相关问题及解决方案
  10. 图说单播,组播,广播,选播和地域播