机器学习实战 ——《跟着迪哥学Python数据分析与机器学习实战》(2)

机器学习实战 ——《跟着迪哥学Python数据分析与机器学习实战》(2)

  • 七、贝叶斯算法
    • 7.1 新闻分类任务实战
      • 7.1.1 结巴分词
      • 7.1.2 词云表示工具包wordcloud
      • 7.1.3 TF-IDF特征
  • 八、聚类算法
    • K-means K-均值聚类算法
      • 评估指标
      • 优缺点
    • DBSCAN(Density-Based Spatial Clustering of Applications with Noise)基于密度的聚类算法
      • 优缺点

接上文《机器学习技术栈 ——《跟着迪哥学Python数据分析与机器学习实战》(1)》

七、贝叶斯算法

关于贝叶斯算法,有太多文章讲的比我好,我不赘述,此处只放上我的一个总结,方便我之后索引记忆:《机器学习技术栈—— 概率学基础》,欲了解更多贝叶斯算法内容,请移步他处。

7.1 新闻分类任务实战

朴素贝叶斯(Native Bayes):假设变量之间是独立的。Naive Bayes classifier - wiki

用朴素贝叶斯方法,分辨垃圾邮件,但我发现下载下来的代码文件并没有包含数据集,所以我只看代码运行结果,没有去实际跑一边。

7.1.1 结巴分词

pip install jieba

用以下代码可以做到分词

content_S = []
for line in content:current_segment = jieba.lcut(line) #对每一篇文章进行分词, lcut = letter cutif len(current_segment) > 1 and current_segment != '\r\n': #换行符content_S.append(current_segment) #保存分词的结果

7.1.2 词云表示工具包wordcloud

word cloud offical website

7.1.3 TF-IDF特征

经过清洗之后,剩下的都是稍微有价值的词,但是这些词的重要程度不一定相同,可以这样定义重要程度

(1)如果一个词在整个语料库中(可以当作是在所有文章中)出现的次数都很高(这篇文章有它,另一篇还有这个词),那么这个词的重要程度就不高,因为它更像一个通用词
(2)如果另一个词在整体的语料库中的词频很低,但是在这一篇文章中却大量出现,就有理由认为它在这篇文章中很重要

T F − I D F = 词 频 ( T F ) ∗ 逆 文 档 频 率 ( I D F ) TF-IDF = 词频(TF)*逆文档频率(IDF) TFIDF=(TF)(IDF)
词 频 ( T F ) = 某 个 词 在 文 章 中 出 现 的 次 数 文 章 的 总 词 数 词频(TF) = \frac{某个词在文章中出现的次数}{文章的总词数} (TF)=
逆 文 档 频 率 ( I D F ) = l o g ( 语 料 库 的 文 档 总 数 包 含 该 词 的 文 档 数 + 1 ) 逆文档频率(IDF) = log(\frac{语料库的文档总数}{包含该词的文档数+1}) (IDF)=log(+1)
I D F IDF IDF,包含该词的文档数越少,就会导致分母减小,从而导致 I D F IDF IDF增大,说明出现了该词的文档非常重要,加1是为了防止分母为0。

八、聚类算法

聚类算法是一种典型的无监督学习算法,但要说这是完全的无监督,似乎也不成立,因为还得首先知道“人以类聚,物以群分”的朴素道理,不知道这个道理,也无法推导出聚类算法。

人类的无师自通式的无监督,是先从劳动中总结归纳出文字符号系统,即,从最原始的物与物的相互作用,A作用于B,归纳出“名词-动词-名词”体系,然后再有各种副词,形容词去丰富这个体系,一个语言系统中,最原始的部分应该就是简单句,比如说“我爱你”,就符合“名词-动词-名词”体系,然后有了这套文字符号系统后,再表达出早已观察到的“人以类聚,物以群分”。

但是计算机的无监督,是先有了“人以类聚,物以群分”这套算法,然后再进行聚类分析,要学会如何学习,涉及到的领域是元学习(Meta Learning),这张图表示的很清楚
meta learning

Meta learning参考文章
Meta-learning - wiki
《Meta Learning 简介》- 知乎

K-means K-均值聚类算法

评估指标

轮廓系数(Silhouette Coefficient)是聚类效果好坏的一种评价方式,也是最常用的评估方法。

Silhouette Coefficient参考文章
《聚类效果评估指标总结》
Silhouette - wiki

优缺点

优点缺点
1.快速、简单,概括来说就是很通用的算法。1.在K-means算法中,K是事先给定的,这个K值是非常难以估计的。很多时候,事先并不知道给定的数据集应该分成多少个类别才合适。《kmeans算法的k值选择》
2.聚类效果通常还是不错的,可以自己指定划分的类别数。2.初始质心点的选择有待改进,可能会出现不同的结果。
3.可解释性较强,每一步做了什么都在掌控之中。3.在球形簇上表现效果非常好,但是其他类型簇中效果一般。

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)基于密度的聚类算法

DBSCAN算法流程
总结:规定好发展的范围 ε \varepsilon ε与规模 M i n P t s MinPts MinPts,各自发展下线,没有符合的目标就停止。遇到无监督问题时,记得这个算法。

优缺点

优点缺点
1.可以对任意形状的稠密数据集进行聚类,而K-means之类的聚类算法一般只适用于球状数据集1.如果样本集的密度不均匀、聚类间距差相差很大时,聚类效果较差
2.非常适合检测任务,寻找离群点2.半径的选择比较难,不同半径的结果差异非常大
3.不需要手动指定聚类的堆数,实际中也很难知道大致的堆数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/155647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT/GPT4科研实践应用与AI绘图技术及论文高效写作

2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

VS搭建QT环境失败1

在VS中做一个简单QT控制台程序; 包含目录已经添加如下图;可以找到QCoreApplication头文件;可以找到QCoreApplication类,把鼠标放上去会有提示;但是由QCoreApplication类生成对象会出错;app这个变量提示出错; 同时显示200多个错误;这是VS2015; 看一下我的QT安装有没有缺…

【PostgreSQL】解决PostgreSQL时区(TimeZone)问题

问题描述 最近在使用PostgreSQL中,对行记录进行设置创建时间(created_time)时,出现了设置了now()时间而数据库中写入的数据是不一致的数据。 eg: insert into dept ( created_at, updated_at) VALUES (now(),now())…

算法分析与设计课后练习22

设W(5,7,10,12,15,18,20)和M35,使用过程SUMOFSUB找出W种使得和数等于M的全部子集并画出所生成的部分状态空间树

国产压力测试工具的主要作用

国产压力测试工具可以帮助软件开发和维护团队对系统进行全面的性能测试,以评估系统在高负载下的性能表现。以下是国产压力测试工具的主要作用: 性能评估:国产压力测试工具可以模拟多用户同时对系统进行访问和操作,通过对系统的响应…

Vite - 静态资源处理 - json文件导入

直接就说明白了 vite 中对json 文件直接当作一个模块来解析。 可以直接导入使用! 可以直接导入使用! 可以直接导入使用!json文件中的key,直接被作为一个属性,可以单独被导入。 因此,导入json文件有两种方式…

金山云2023年Q3财报:持续向好!

11月21日,金山云公布了2023年第三季度业绩。 财报显示,金山云Q3营收16.3亿元,调整后毛利率达12.1%再创历史新高,调整后毛利额同比上涨57.5%。今年第三季度,公有云实现收入10.2亿元,毛利率达到4.7%&#xf…

OpenAI GPT-4 Turbo发布:开创AI新时代

🎥 屿小夏 : 个人主页 🔥个人专栏 : IT杂谈 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. GPT-4 Turbo的突破1.1上下文长度和控制手段的加强:1.2多模态支持&#xff1a…

Linux 网络:PMTUD 简介

文章目录 1. 前言2. Path MTU Discovery(PMTUD) 协议2.1 PMTUD 发现最小 MTU 的过程 3. Linux 的 PMTUD 简析3.1 创建 socket 时初始化 PMTUD 模式3.2 数据发送时 PMTUD 相关处理3.2.1 源头主机发送过程中 PMTUD 处理3.2.2 转发过程中 PMTUD 处理 4. PMTUD 观察5. 参考链接 1. …

使用Python实现几种底层技术的数据结构

使用Python实现几种底层技术的数据结构 数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这…

千字文||无聊又数了一下千字文字数

千字文的字数去除标点符号真的整整一千个不多的不少 该文章无技术含量,仅三字经原文,学技术的同学可以止步了 千字文(原文) 【作者】周兴嗣 【朝代】南北朝 天地玄黄,宇宙洪荒。 日月盈昃,辰宿列张。 寒来…

Python 进程和线程详解(multiprocessing、threading)

文章目录 1 概述1.1 进程 VS 线程1.2 优缺点 2 进程2.1 三个步骤2.2 多进程2.3 带参数2.3.1 元组参数 args2.3.2 字典参数 kwargs 2.4 获取进程编号2.5 设置进程守护 3 线程3.1 三个步骤3.2 多线程3.3 带参数2.3.1 元组参数 args2.3.2 字典参数 kwargs 2.4 获取线程编号2.5 设置…

UE4基础篇十七:分析性能

一、性能瓶颈定位 原文地址:小能猫吃牙膏:UE4 性能 - (一)瓶颈定位 P.S. 对于某个具体问题,我个人偏向于遵循 WHY → WHAT → HOW 的思考方法(重要性逐级递减) 加以理解。因为如果找不到做某件事情的意义(WHY)所在,或是对这件事情本身的定义(WHAT)都模棱两可,那么即便经…

【经验之谈·高频PCB电路设计常见的66个问题】

文章目录 1、如何选择PCB 板材?2、如何避免高频干扰?3、在高速设计中,如何解决信号的完整性问题?4、差分布线方式是如何实现的?5、对于只有一个输出端的时钟信号线,如何实现差分布线?6、接收端差…

特斯拉开启“涨涨涨”模式,一个月宣布涨价4次

KlipC报道:11月21日特斯拉中国官网上调了Model Y长续航全轮驱动版售价,一个月内,特斯拉进行第四次价格调整。 对此特斯拉将近期涨价的原因解释为 这次涨价相对于今年8月份的降价实际上属于‘价格回调’,一方面是因为特斯拉销量好&…

docker部署jdk21的镜像

docker Docker是一种开放源代码软件,可以帮助开发人员更轻松地创建、部署和运行应用程序。它是一种容器化技术,可以将应用程序及其依赖项打包在一个容器中,从而使应用程序更加便携和可移植。Docker将操作系统、应用程序和硬件虚拟化进行了彻底…

LeetCode算法心得——爬楼梯(记忆化搜索)

大家好,我是晴天学长,第二个记忆化搜索练习,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪 1)爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或…

Nacos和Eureka的区别

目录 配置: 区别: ephemeral设置为true时 ephemeral设置为false时(这里我使用的服务是order-service) 1. Nacos与eureka的共同点 都支持服务注册和服务拉取 都支持服务提供者心跳方式做健康检测 2. Nacos与Eu…

手把手带你在AutoDL上部署InternLM-Chat-7B Transformers

手把手带你在AutoDL上部署InternLM-Chat-7B Transformers 调用 项目地址:https://github.com/KMnO4-zx/self_llm.git 如果大家有其他模型想要部署教程,可以来仓库提交issue哦~ 也可以自己提交PR! InternLM-Chat-7B Transformers 部署调用 环…

演示命令执行漏洞无回现如何渗透

演示命令执行漏洞无回现如何渗透 在DNSlog 获取一个域名 使用dvwa中的命令执行来ping此域名 执行后在DNSlog收到解析,证明命令执行成功