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

news/2024/12/4 23:05:24/

机器学习概述:

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.ppmy.cn/news/1552402.html

相关文章

Selenium3+Python如何操作键盘

selenium操作键盘,需要导入Keys类:“from selenium.webdriver.common.keys import Keys” 调用键盘操作的快捷键的方法 : 单键值:直接传入对应的键值“element.send_keys”(快捷键的键值) 组合键:键值之间由逗号分隔…

大模型呼入机器人系统如何建设?

大模型呼入机器人系统如何建设? 作者:开源呼叫中心系统 FreeIPCC, Github地址:https://github.com/lihaiya/freeipcc 大模型呼叫中心呼入机器人系统的建设是一个涉及多个环节和领域的综合性工程。以下是一个详细的步骤指南,涵盖了…

python蓝桥杯刷题3

1.解方程组解 题解:首先让a,b,c进行遍历,然后计算得到1000时输出结果,其次考虑1000开根号是多大,计算得到32的倍数是1024,所有选择(1,32)进行遍历&#xff0c…

Python的秘密基地--[章节2]Python核心数据结构

第2章:Python核心数据结构 Python中的数据结构提供了强大的工具来存储和操作数据。理解这些数据结构是Python编程的基础。 2.1 列表(List) 2.1.1 什么是列表 列表是一种有序的可变序列,用于存储一组数据。它支持多种类型的数据…

基于Java Springboot在线答题微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse微信开…

机器学习快速入门(黑马程序员版)

1.机器学习概述 1.1-人工智能描述 1.1.1机器学习与人工智能、深度学习 三者关系:1.机器学习是人工智能的一个实现途径。2.深度学习是机器学习的一个方法发展而来。 人工智能的起点——达特茅斯会议 1956年8月,在美国汉诺斯小镇宁静的达特茅斯学院中&…

洛谷 B2029:大象喝水 ← 圆柱体体积

【题目来源】https://www.luogu.com.cn/problem/B2029【题目描述】 一只大象口渴了,要喝 20 升水才能解渴,但现在只有一个深 h 厘米,底面半径为 r 厘米的小圆桶 (h 和 r 都是整数)。问大象至少要喝多少桶水才会解渴。 …

小程序-基于java+SpringBoot+Vue的音乐播放器小程序设计与实现

项目运行 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…