一 序

本文属于贪心NLP训练营学习笔记系列。

这节课在线性回归及正则里面穿插的讲。对于从逻辑回归开始明显感到主要就是 讲数学公式的推导了。好难。

二 情绪识别实战

Python吧就是看了点语法,所以本节课的内容我是对照李文哲老师的再本地敲了一边代码。

2.1  数据准备:ISEAR.csv

2.2  读取

第一段就是导入 pandas,numpy. 第二段就是读取数据集ISEAR.csv. 这个数据

model_selection主要提供 交叉验证 和 结果评估 的工具

#本段:数据准备
from sklearn.model_selection import train_test_split #随机地将样本集合分为训练集和测试集
labels = data[0].values.tolist() # 标签
sents = data[1].values.tolist()  # 句子
# 将数据随机分成80%的训练数据和20%的测试数据
X_train, X_test, y_train, y_test = train_test_split(sents, labels, test_size=0.2, random_state=42)

X_train 代表的是训练数据文本,y_train代表的是训练数据标签。X_test 是测试数据的文本,y_test是测试数据标签。

如果运行出现'no module named sklean'的原因是,没有正确安装sklean包

我用直接安装:pip3 install scikit-learn

出现网络错误。

pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.

加个清华的镜像就快多了。

提取特征

from sklearn.feature_extraction.text import TfidfVectorizer
# TfidfVectorizer可以把原始文本转化为tf-idf的特征矩阵vectorizer = TfidfVectorizer()
X_train = vectorizer.fit_transform(X_train)# 训练数据转换
X_test = vectorizer.transform(X_test) #测试数据转换

当然fit_transform更进一步将输入的训练集转换成了VSM矩阵形式。transform函数用于对测试文本进行向量化表示。

   注意区别,暂时理解fit_transform比transform多了fit(训练过程,对于测试数据不能用fit_transform)

官网:https://scikit-learn.org/stable/user_guide.html

这里只是简单了解,没有深入学习(比如这些向量值跟那些因素有关,怎么算的向量值),不学习就是个黑盒子,以后单独学习吧。

再次感慨下,Python这里就3行代码,比Java省了很多代码,哎,咋就没有Java的大神来整一套sklearn呢。假设你在小公司,没有专门的AI团队。要做类似的TF-IDF这种需求。两天写出来效果还是个问号。

至此,已经做了特征提取的过程(词频的特征),除了TFIDF还可以做其他的特征提取如:词性的特征、 n-gram。

训练

接下来就是训练的过程,我们使用逻辑回归,先看下sklearn官网上关于逻辑回顾的参数介绍。

https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import GridSearchCV
# 屏蔽警告信息
import warnings
warnings.filterwarnings("ignore")
# 此处C对应正则表达式λ的值, 是λ分之一
parameters = {'C':[0.00001, 0.0001, 0.001, 0.005,0.01,0.05, 0.1, 0.5,1,2,5,10]}
lr = LogisticRegression() #构建逻辑回归模型
lr.fit(X_train, y_train).score(X_test, y_test)
# GridSearchCV,它存在的意义就是自动调参,只要把参数输进去,就能给出最优化的结果和参数。
# 但是这个方法适合于小数据集
clf = GridSearchCV(lr, parameters, cv=10)
clf.fit(X_train, y_train)
clf.score(X_test, y_test)
print (clf.best_params_)

结合之前课程上讲过的逻辑回归的目标函数,这个C就是可以理解为. C有列出来那么多值可以选择,我们要选择最好的一项,就是交叉验证的过程。

lr.fit(X_train, y_train).score(X_test, y_test) #测试数据的准确率

GridSearchCV 开始做交叉验证。

混淆矩阵

还有混淆矩阵,上课没讲,多分类问题,每个分类器越大越好

可以找到不大的分类,再去想办法找特征优化,这个图上第一个分类98 就不太好。

NLP学习笔记25-情绪识别实战及数据集下载相关推荐

  1. 利用计算机技术实现对文本篇章,自然语言处理NLP学习笔记一:概念与模型初探...

    前言 先来看一些demo,来一些直观的了解. 自然语言处理: 可以做中文分词,词性分析,文本摘要等,为后面的知识图谱做准备. 知识图谱: 还有2个实际应用的例子,加深对NLP的理解 九歌机器人: 微软 ...

  2. 【一文弄懂】张正友标定法-完整学习笔记-从原理到实战

    张正友标定法-完整学习笔记-从原理到实战 文章目录 张正友标定法-完整学习笔记-从原理到实战 (零)前言: 1 为什么需要标定? 2 相机标定的已知条件和待求解是什么? 标定前的已知条件: 待求信息: ...

  3. unity学习笔记-text文本识别html富文本(待改进)

    unity学习笔记 text文本识别html富文本(待改进) 需求 逻辑 实现 xlua的安装 配置到unity 使用 改进优化(待改进) text文本识别html富文本(待改进) 需求 项目里需要将 ...

  4. Colly 学习笔记(二)——爬虫框架,抓取下载数据(上证A股数据下载)

    Colly 学习笔记(二)--爬虫框架,抓取下载数据(上证A股数据下载) Colly 学习笔记(一)--爬虫框架,抓取中金公司行业市盈率数据 Colly 学习笔记(二)--爬虫框架,抓取下载数据(上证 ...

  5. 学习笔记TF058:人脸识别

    人脸识别,基于人脸部特征信息识别身份的生物识别技术.摄像机.摄像头采集人脸图像或视频流,自动检测.跟踪图像中人脸,做脸部相关技术处理,人脸检测.人脸关键点检测.人脸验证等.<麻省理工科技评论&g ...

  6. NLP学习笔记41-递归神经网络

    一 序 本文属于贪心NLP训练营学习笔记系列.    为什么需要递归神经网络? 类似天气.股票.语音这种数据,是时序数据,对于语音:同一个单词不同人说对应时长不同. 之前学习的多层感知器,假设输入是一 ...

  7. 影像组学视频学习笔记(25)-查看准确度、灵敏度、特异度及混淆矩阵、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(25)主要讲解: 通过sklearn包输出准确度.灵敏度.特异度及混淆矩阵 基本概念 代码实现 from sklearn.metrics ...

  8. NLP学习笔记30-SVM 对偶、KTT,核函数

    一 序 本文属于贪心NLP训练营学习笔记系列. 二 Mapping Feature to High Dimensional Space 如图所示,转换是包含两部分的工作的,第一步是从低维特征向量转换为 ...

  9. 《童虎学习笔记》20分钟实战ProxySQL MGR高可用及读写分离架构

    本文章配套视频 https://www.ixigua.com/7086085500540289572?id=7087546160079962660 本专栏全部文章 https://blog.csdn. ...

最新文章

  1. PYTHON学习笔记-DAY-16
  2. java list写入txt_Java - 如何将我的ArrayList写入文件,并将该文件读取(加载)到原始ArrayList?...
  3. 11.23月福首页30%
  4. mysqldump单个库导出_初相识 | 全方位认识 sys 系统库
  5. android自定义游戏闯关图,Android自定义View(四) -- Canvas
  6. pla3d打印材料密度_3D打印金属材料模型过程中常见问题
  7. 特斯拉Model 3再次升级,将中控部分功能转移至方向盘按钮
  8. 程序员内卷?连熬数夜肝出这份2021Java面试题核心知识点总结,近300页!
  9. Docker : Docker使用DockerFile入门案例
  10. Log4j 配置的webAppRootKey参数问题
  11. MyEclipse10.6 安装SVN插件方法及插件下载地址
  12. Android平台ROM的定制及精简教程
  13. c语言运算程序示例,C语言算术运算示例程序
  14. zeppelin配置hive教程
  15. 对区块链撒谎:将“垃圾进,垃圾出”问题应用在去中心化网络上
  16. 教你利用腾讯云cdn加速网站静态资源
  17. 萤石开放平台-定时获取AccessToken
  18. asp.net 实现word在线阅读
  19. 基于chatgpt开发QQ机器人
  20. mysql 共享nfs,服务器之间搭建NFS共享文件 - 老牛博客

热门文章

  1. 音视频前沿:新一代 AV1 视频标准究竟是怎样一种存在?
  2. Android 蓝牙 MAC 地址的读取和修改
  3. 2021年中国滑翔伞行业现状分析:目前以休闲为主[图]
  4. 读书感受 之 《以眨眼干杯》
  5. 2020.12.14 ps临摹作业
  6. 读书笔记@软件架构设计
  7. 如何进行广告翻译,广告翻译的难点是什么?
  8. html语言结构格式是什么,HTML语言是什么?
  9. Yeslab数据中心实验室,重量级设备UCS图片展示
  10. 零基础小白入门Python之文件读写(一)