机器学习概述,特征工程简述2.1——2.3

news2024/12/12 19:37:56

机器学习概述:

1.1人工智能概述

     达特茅斯会议—人工智能的起点

     机器学习是人工智能的一个实现途径

     深度学习是机器学习的一个方法发展而来

     1.1.2   机器学习和深度学习能做什么

               传统预测     图像识别    自然语言处理

1.2什么是机器学习

     数据

     模型

     预测

     从历史数据当中或得规律?这些历史数据是怎么的格式?

     1.2.2 数据集构成

              特征值+目标值

1.3机器学习的算法分类

     监督学习

            目标值:类别-分类问题

                   k-近邻算法,贝叶斯算法,决策树与随机森林,逻辑回归

            目标值:连续型的数据-回归问题

                   线性回归,岭回归

            目标值:无-无监督学习

                   聚类  K-means

            1.预测明天的气温多少度?  回归

            2.预测明天是阴天,晴天?  分类

            3.人脸年龄识别?  回归/分类

1.4机器学习开发流程

     1)获取数据

     2)数据处理

     3)特征工程

     4)机器学习算法训练-模型

     5)模型评估

     6)应用

1.5学习框架和资料介绍

     1)算法是核心,数据与计算是基础

     2)找准定位

     3)怎么做?

             1,入门

             2,实战类书籍

             3,机器学习——“西瓜书”,周志华

                  统计学习方法——李航

                  深度学习——“花书”

  1. 机器学习库和框架



特征工程:

2.1数据集

         2.1.1 可用数据集

                      公司内部  百度

                      数据接口  花钱

                      数据集

                      学习阶段可以用的数据集:

                                             1)sklearn    2)kaggle    3)UCI

                      1.Scikit-learn工具介绍

           2.1.2 sklearn数据集

                   sklearn.datasets

                           load-*   获取小规模的数据集

                           fetch-*  获取大规模的数据集

                                          获取大规模数据集,需要网络上下载,函数的第一个参数是data-home,表示数据集下载的目录,默认是~/scikit-learn-data/

                           2 sklearn  小数据集

                                        sklearn.datasets.load-iris()

                                         加载并返回鸢尾花数据集

                                         sklearn.datasets.load-boston()

                                         加载并返回波士顿放假数据集

                           3 sklearn  大数据集

                      sklearn.datasets.fetch-20newsgroups(data-home=None,subset='train'

                      subset:'train'或者'test','all',可选,选择要加载的数据集

                      训练集的‘训练’,测试集的‘测试’,两者的‘全部’

                           4 数据集的返回值

                                 datasets.base.Bunch(继承自字典)

                                            dict["key"] = values

                                            bunch.key = values

     2.1.3 数据集的划分

           训练数据:用于训练,构建模型

           测试数据:在模型检验时使用,用于评估模型是否有效

                        测试集:20%--30%

                        训练集特征值,测试集特征值,训练集目标值,测试集目标值

                         x_train,             x_test,               y_train,             y_test

2.2 特征工程介绍

     算法,  特征工程

     2.2.1 为什么需要特征工程

     2.2.2 什么是特征工程

              sklearn  特征工程

              pandas   :数据清晰,数据处理

2.3 特征提取

         2.3.1.将任意数据(如文本或图像)转换为可用于机器学习的数字特征

注意:特征值化是为了计算机更好的去理解数据

          字典特征提取(特征离散化)

          文本特征提取

         2.特征提取API

           sklearn.feature_extraction

2.3.2 字典特征提取

字典特征提取——类别——数学公式

父类:转换器类

返回sparse矩阵

      spares  稀疏:将非零值   按位置表示出来,可以节省内存,提高加载效率

应用场景:1)pclass ,sex 数据集当中类别特征比较多时

                   2)本身拿到的数据就是字典类型

2.3.3文本特征提取

注意:有新版本中更新的知识点

单词  作为  特征

句子,短语,单词,字母

特征:特征词

方法1:CountVectorizer    :统计每个样本特征词出现的个数

         stop_words  停用词

停用词表

停用词表(Stop Words List)是自然语言处理(NLP)和信息检索领域中的一个术语,指的是在文本处理过程中被排除在分析之外的词汇列表。这些词汇通常是那些在文本中非常常见,但对于文本的主题或情感分析没有太大意义的词,比如“的”、“是”、“在”等在中文中的常用词,以及英文中的“the”、“is”、“at”、“which”等。

停用词表的主要作用包括:

1. **减少数据维度**:去除停用词可以减少文本数据的维度,从而降低计算复杂度。

2. **提高分析质量**:去除停用词有助于提高文本分析的质量,因为停用词往往不会对文本的主题或情感产生显著影响。

3. **节省存储空间**:在存储文本数据时,去除停用词可以节省存储空间。

4. **避免噪音**:停用词可能会引入噪音,影响文本分析的准确性。

在不同的应用场景中,停用词表可能会有所不同,因为某些词在特定的上下文中可能具有重要意义。例如,在法律文本中,“合同”、“协议”等词可能就不是停用词。

在 `CountVectorizer` 中,可以通过 `stop_words` 参数来指定停用词表。如果不指定,`CountVectorizer` 会使用一个默认的停用词表,该表包含了一些常见的停用词。你也可以自定义停用词表,以适应特定的应用需求。例如:

```python
from sklearn.feature_extraction.text import CountVectorizer

# 定义停用词表
stop_words = set(['the', 'is', 'at', 'which', 'and', 'on', 'for'])

# 创建 CountVectorizer 实例,指定停用词表
vectorizer = CountVectorizer(stop_words=stop_words)

# 应用 fit_transform 方法
data_new = vectorizer.fit_transform(['This is the first document.', 'This document is the second document.'])
```

在这个例子中,我们定义了一个简单的停用词表,并将其传递给 `CountVectorizer` 实例。这样,在文本向量化过程中,这些停用词将被忽略。
 


中文文本特征提取:

需要使用jieba进行分词。

输出:

这一种并未达到理想效果.


关键词:在某一个类别的文章中,出现的次数很多,但是在其他类别的文章中出现次数很少

方法2:TfidfVectorizer  :寻找关键词

Tf-idf 文本特征提取

其主要思想是:如果某个词或者短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来做分类。

TF-IDF作用:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。

举例:(帮助更好理解TF-IDF)

对上面照片进行解释:

以下是文档中提到的 TfidfVectorizer 类的主要方法:

  1. TfidfVectorizer.fit_transform(X):

    • X: 文本数据,可以是字符串列表或者包含文本字符串的可迭代对象。
    • 这个方法会计算输入文本数据的 TF-IDF 权重,并将文本转换为稀疏矩阵格式。
    • 返回值: 一个稀疏矩阵,其中每一行代表一个文档,每一列代表一个词汇,矩阵中的值表示该词汇在文档中的 TF-IDF 权重。
  2. TfidfVectorizer.inverse_transform(X):

    • X: 一个数组或者稀疏矩阵,通常是 fit_transform 方法的输出。
    • 这个方法将 TF-IDF 权重矩阵转换回原始的文档格式。
    • 返回值: 转换之前的文档数据格式。
  3. TfidfVectorizer.get_feature_names():

    • 这个方法返回 TfidfVectorizer 在 fit_transform 过程中识别出的词汇列表。
    • 返回值: 一个包含所有特征名称(即词汇)的列表。

stop_words 参数是一个可选参数,用于指定在文本处理过程中要排除的停用词。如果设置为 None,则使用 TfidfVectorizer 的默认停用词列表。你也可以提供一个自定义的停用词列表,以适应特定的文本分析需求。

这些方法使得 TfidfVectorizer 成为文本数据预处理和特征提取的有力工具,特别是在机器学习和自然语言处理领域。


案例演示:


TF-IDF重要性:分类机器学习算法进行文章分类中前期数据处理方式。

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

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

相关文章

C语言(一维数组练习)

键盘录入一组数列&#xff0c;利用冒泡排序将数据由大到小排序 #include <stdio.h>int main(int argc,char *argv[]) {int i,j,tmep;int arr[10];printf("请输入10个测试整数&#xff1a;\n");int lensizeof(arr)/sizeof(arr[0]);for(i0;i<len;i){scanf(&q…

【2025最新计算机毕业设计】基于SSM+Vue中华传统文化吟诵知识学习系统

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

MySQL需掌握到何种程度?才能胜任工作

大家好&#xff0c;我是袁庭新。星友问&#xff1a;MySQL需要学到什么程度&#xff1f;才能胜任日常的软件开发工作呢&#xff01;以下是一些建议的学习目标和程度&#xff0c;这些目标旨在帮助你在工作中高效地使用MySQL。 数据库的基本概念、MySQL的安装及配置、SQL的概念、S…

[TPAMI 2024]Vision-Language Models for Vision Tasks: A Survey

论文网址&#xff1a;Vision-Language Models for Vision Tasks: A Survey | IEEE Journals & Magazine | IEEE Xplore 论文Github页面&#xff1a;GitHub - jingyi0000/VLM_survey: Collection of AWESOME vision-language models for vision tasks 英文是纯手打的&…

桂湾公园的地面免费停车场(50个左右)

之前一直以为桂湾公园只有P1和P2地下停车场可以免费停车。没想到桂湾公园还有地面停车场&#xff0c;停车位大概是50个。 具体位置在桂湾公园5号门地上停车场。 桂湾公园-5号门 广东省深圳市南山区桂湾河南街与鲤鱼门西二街交叉口西北20米 停车场入口对面是红星美凯龙&#x…

SpringBoot连接多数据源MySQL、SqlServer等(MyBatisPlus测试)

SpringBoot连接多数据源MySQL、SqlServer等&#xff08;MyBatisPlus测试&#xff09; 在实际的项目开发中&#xff0c;我们往往需要同时连接多个数据源对数据进行处理。本文将详细介绍在SpringBoot下配合MybatisPlus如何连接多数据源&#xff0c;实例将会使用连接MySQL、SqlSe…

基于NVIDIA NIM 平台的知识问答系统实现客服功能

前言&#xff1a; NVIDIA联合CSDN推出了《NVIDIA NIM黑客松训练营》&#xff0c;通过对着提供的实验手册&#xff0c;学习了基于NVIDIA的NIM平台知识问答系统&#xff0c;简单的一段代码就可以实现一个AI智能问答系统。而且这次活动注册账号即可获得到免费的1000tokens&#x…

(12)时间序列预测之MICN(CNN)

文章目录 前言1. challenge 一、网络结构1. MHDecomp2. Trend-cyclical Prediction Block3. Seasonal Prediction BlockMIC LayerMerge 实验结果1.长时预测 总结参考 文章信息 模型&#xff1a; MICN (Multi-scale Isometric Convolution Network)关键词&#xff1a; 长时预测…

设计模式——Facade(门面)设计模式

摘要 本文介绍了外观设计模式&#xff0c;这是一种通过简单接口封装复杂系统的设计模式。它简化了客户端与子系统之间的交互&#xff0c;降低了耦合度&#xff0c;并提供了统一的调用接口。文章还探讨了该模式的优缺点&#xff0c;并提供了类图实现和使用场景。 1. 外观设计模…

opencv-android编译遇到的相关问题处理

1、opencv-android sdk下载 下载地址&#xff1a;https://opencv.org/releases/ 下载安卓SDK即可 2、解压下载好的SDK 3、导入opencv的SDK到安卓项目中 导入步骤在/OpenCV-android-sdk/sdk/build.gradle文件的注释中写的非常详细&#xff0c;大家可安装官方给出的步骤导入。…

go语言读取yaml配置文件内容

1、config.yaml配置文件内容假设如下 name: "example" version: 1.0 settings:timeout: 30debug: truefeatures:- feature1- feature22、定义结构体 go语言定义结构体匹配yaml内容 package mainimport ("fmt""log""os""gopkg.…

STL算法之其它算法_下

random_shuffle 这个算法将[first,last)的元素次序随机排列。也就说&#xff0c;在N!中可能的元素排列中随机选出一种&#xff0c;此处N为last-first。 N个元素的序列&#xff0c;其排列方式为N!中&#xff0c;random_shuffle会产生一个均匀分布&#xff0c;因此任何一个排列被…

模拟简单的iOT工作流

没有实际接触过iOT的流程&#xff0c;应该实际使用比这个接口返回要复杂&#xff0c;只是演示~希望能参与实际的接口接入&#xff0c;而不是只展示个假数据。 启动RabbitQ 使用的是3.8.5 启动命令 RabbitMQ Service - start RabbitMQ Command Prompt rabbitmqctl start_app …

【快速入门 LVGL】-- 1、STM32 工程移植 LVGL

目录 一、LVGL 简述 二、复制一个STM32工程 三、下载 LVGL 四、裁剪 源文件 五、工程添加 LVGL 文件 六、注册 显示 七、注册 触摸屏 八、LVGL 心跳、任务刷新 九、开跑 LVGL 十、控件的事件添加、响应处理 十 一、几个好玩小事情 十 二、显示中文 ~~ 约定 ~~ 在…

关于线扫相机的使用和注意事项

引言 线扫相机作为工业视觉系统中的核心设备之一&#xff0c;以其高分辨率和高速成像的特点被广泛应用于印刷质量检测、电子元件检测、纺织品缺陷检测等领域。本文从线扫相机的基本原理出发&#xff0c;探讨其使用方法&#xff0c;并总结在实际应用中的注意事项&#xff0c;为…

MybatisPlus字段类型处理器TypeHandler

个人博客&#xff1a;无奈何杨&#xff08;wnhyang&#xff09; 个人语雀&#xff1a;wnhyang 共享语雀&#xff1a;在线知识共享 Github&#xff1a;wnhyang - Overview 简介 官网&#xff1a;字段类型处理器 在 MyBatis 中&#xff0c;类型处理器&#xff08;TypeHandle…

c++编译版本问题#error C++17 or later compatible compiler is required to use xx

问题解决方向 网上多数给出的解决方法是找到setup.py&#xff0c;然后修改extra_compile_args参数中的cxx&#xff0c;由-stdc14改为-stdc17&#xff0c;但是这个方法在我这里没用。 所以我重新理解了下这个error&#xff0c;应该是说为了编译安装当前的库&#xff0c;需要的…

【AI大模型】大型语言模型LLM基础概览:技术原理、发展历程与未来展望

目录 &#x1f354; 大语言模型 (LLM) 背景 &#x1f354; 语言模型 (Language Model, LM) 2.1 基于规则和统计的语言模型&#xff08;N-gram&#xff09; 2.2 神经网络语言模型 2.3 基于Transformer的预训练语言模型 2.4 大语言模型 &#x1f354; 语言模型的评估指标 …

一文理解多模态大语言模型——下

作者&#xff1a;Sebastian Raschka 博士&#xff0c; 翻译&#xff1a;张晶&#xff0c;Linux Fundation APAC Open Source Evangelist 编者按&#xff1a;本文并不是逐字逐句翻译&#xff0c;而是以更有利于中文读者理解的目标&#xff0c;做了删减、重构和意译&#xff0c…

uC/OSII学习笔记(二)任务的堆栈检验

加入OSTaskCreateExt()创建拓展任务函数的使用。 加入OSTaskStkChk()堆栈检验函数的使用。 堆栈检验函数可检查任务堆栈的使用字节数量和空闲字节数量。 具体使用方法如下&#xff1a; 1.创建拓展任务OSTaskCreateExt()用于堆栈检验&#xff0c;堆栈检验必须用拓展任务OSTaskCr…