勇闯机器学习(第三关-特征工程)

以下内容皆为原创,制作不易,请帅锅镁铝点点赞赞和关注吧(^_^)

一.提问环节

        机器学习是什么?

机器学习就是通过自动分析大量数据去建立模型,训练模型,预测数据。

这么好记的概念,你应该记住了吧??       

 机器学习的概念关:http://t.csdnimg.cn/arRtn

        机器学习的流程?

  1. 获取数据(有数据你才能得到模型啊,有数据你才能训练模型)
  2. 数据预处理(把那些无用的数据删掉,比如:空值,无意义的,乱码)
  3. 特征工程(对特征值进行处理)
  4. 机器学习算法训练--模型
  5. 模型评估(如果模型不行的话,从第二步开始重新看看,再优化一下,直到模型评估良好)
  6. 应用(模型好了,我们才能应用)

 没错,这就是第一关的重点,我们这关主要是搞特征工程。

二.特征工程

        1.定义:

                        特征工程是使用专业的背景知识和技巧处理数据,使得特征在机器学习算法中发挥更好的作用的过程。(其实就是更高尚的处理数据,开玩笑的啊)

        2.意义:

                        直接影响机器学习的效果。

       3.与数据预处理的区别:

                        特征工程的过程中,专门用sklearn对特征进行处理。

                        而数据预处理,主要对原数据,进行数据清洗,异常值、缺失值处理。

        4.特征工程的内容:

        每个数据都有自己的特征,包括文本类型,每个字都有属于自己的特征。那么我们可以用sklearn去将它们转为数值,转化后的数值就是它们的特征。

特征抽取:用机器学习算法(就是统计方法,统计方法就是数学公式)

特征预处理

特征降维  

                        

三.特征提取

                我们今天先讲特征提取,正所谓,慢活出细糠嘛。

                

        1.将任意数据(如文本和图像)转化为机器学习的数字特征

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

        内心独白:你想想,计算机只认识0和1,二进制。所以我们将数据转化为特征值,这样砸门计算机才能更加深刻的理解和分析。                        

特征提取分为三类
字典特征提取(特征离散化)
文本特征提取
图像特征提取

        这三类,当你遇到字典,那就字典特征提取。当你遇到文本类型数据,那就文本特征提取。遇到图像,那就图像特征提取。

        2.特征提取API

sklearn.feature_exrtaction

四.字典特征提取

        作用:对字典数据进行特征值化

        内心独白:这些方法很好记,都是英语单词,vector向量、矢量。extraction提取。

sklearn.feature_extraction.DictVectorizer(sparse=True)1.DictVectorizer.fit_transform(X)X是字典或者包含字典的迭代器返回值,返回sparse矩阵(稀疏矩阵)2.DictVectorizer.inverse_transform(X)X是array数组或者sparse矩阵,返回值:转换之前数据格式3.DictVectorizer.get_feature_names()返回类别名称

       应用:

                我们对以下数据(字典类型的,因为这章节讲的就是字典特征提取)进行特征提取

data = [{'city':'北京','temperature':100},

                        {'city':'上海', 'temperature':60},

                        {'city':'深圳', 'temperature':30}]

                这段代码是用于对字典数据进行特征提取,它会返回一个稀疏矩阵(记住这个,等下讲到)。每个特征都会对应一个向量。

from sklearn.model_selection import train_test_split
from sklearn.feature_extraction import DictVectorizer
data = [{'city':'北京','temperature':100}, {'city':'上海', 'temperature':60}, {'city':'深圳', 'temperature':30}]
# 1.实例化一个转换器类
transfer = DictVectorizer()# 2.调用fit_transform()
data_new = transfer.fit_transform(data)
print("data_new\n", data_new)

            

     解释时刻:

                请问返回的为什么不是一个二维数组?

        

因为这个函数方法返回的是稀疏矩阵啊,我也没办法,而且你看我们DictVectorizer()里面没有填参数,所以默认sparse=True并且返回稀疏矩阵    。所以我们要改一下参数,让sparse=False即可。            

废话不多说,开始弄。

from sklearn.model_selection import train_test_split
from sklearn.feature_extraction import DictVectorizer
data = [{'city':'北京','temperature':100}, {'city':'上海', 'temperature':60}, {'city':'深圳', 'temperature':30}]
# 1.实例化一个转换器类
transfer = DictVectorizer(sparse=False)# 2.调用fit_transform()
data_new = transfer.fit_transform(data)
print("data_new\n", data_new)
# 如果下面报错了,你就换最下面那个,可能是版本不同吧,方法名不一样
# print("特征名字\n", transfer.get_feature_names())
print("特征名字\n", transfer.get_feature_names_out())

 

五.总结

        

        你看这两个的区别,左边是稀疏矩阵,右边是二维数组。稀疏矩阵的六个坐标(只会将非零值按位置表现出来),分别对应右边非零值的位置。

        好,那么为什么要用非零值,而不用零值呢。将类别转为one-hot编码(独热编码),假如有1000个类别,那我转为one-hot编码,就会大大的占据空间和资源。所以为了节省空间和内存,稀疏矩阵只注重非零值,并提高效率。

六.应用场景

        (1)数据集中类别特征比较多

                        1.将数据集特征==》字典类型

                        2.DictVectorizer转换

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

 OK,今天的分享就到这里,谢谢大家阅读,晚安2024.07.17   22:53

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

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

相关文章

企业高性能web服务器知识点合集

文章目录 nginx源码编译安装平滑升级及版本回滚平滑升级版本回滚 服务启动脚本核心配置全局配置参数优化调整root与alias自定义错误日志自定义错误页面检测文件是否存在长链接配置下载服务器的配置 nginx高级配置nginx状态页面压缩功能变量内置变量自定义变量 nginx rewrite指令…

MySQL基础知识(二)-超详细 Linux安装MySQL5.7完整版教程及遇到的坑

1.简介 我们经常会在Linux上安装MySQL数据库,但是安装的时候总是会这里错,那里错,不顺利,今天整理了一下安装流程,连续安装来了两遍,没有遇到什么大错误,基本上十分钟左右可以搞定,教…

自行车制造5G智能工厂工业物联数字孪生平台,推进制造业数字化

在当今这个日新月异的数字化时代,制造业正经历着前所未有的变革,自行车制造5G智能工厂工业物联数字孪生平台的兴起,无疑是这场转型浪潮中一股强劲力量。自行车制造5G智能工厂工业物联数字孪生平台的成功应用,不仅仅是技术上的突破…

【Go】实现字符切片零拷贝开销转为字符串

package mainimport ("fmt""unsafe" )func main() {bytes : []byte("hello world")s : *(*string)(unsafe.Pointer(&bytes))fmt.Println(s)bytes[0] Hfmt.Println(s) }slice的底层结构是底层数组、len字段、cap字段。string的底层结构是底层…

产品帮助中心如何搭建?五步让客户满意度提升100%

一、引言 创建帮助文章的好处是节省了招募大量客户联系代理的昂贵成本。它们现在通过解决客户的早期问题而无需支持干预,并为自助提供逐步指导,从而取代了支持代理。 当您创建帮助文章时,您会构建知识库并为将来保留它。这些帮助文章充当新…

案例:ZooKeeper + Kafka消息队列集群部署

目录 消息队列 概念 使用场景 不适宜 适宜 消息队列的特征 存储 异步 异步的优点 同步 为什么需要消息队列 解耦 作用 冗余 扩展性 灵活性 峰值处理能力 可恢复性 顺序保证 Kafka 概念 Kafka技术名词 (1)Broker (2&a…

C语言一笔画迷宫

目录 开头程序程序的流程图程序游玩的效果结尾 开头 大家好&#xff0c;我叫这是我58。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> #include <Windows.h> void printmaze(const char strmaze[11][11]) {int ia 0;…

BUG——imx6u开发_结构体导致的死机问题(未解决)

简介&#xff1a; 最近在做imx6u的linux下裸机驱动开发&#xff0c;由于是学习的初级阶段&#xff0c;既没有现成的IDE可以使用&#xff0c;也没有GDB等在线调试工具&#xff0c;只能把代码烧写在SD卡上再反复插拔&#xff0c;仅靠卑微的亮灯来判断程序死在哪一步。 至于没有使…

41-设计规则:线宽规则

1.设置电源线规则和信号线规则 2.设置信号线规则 3.设置电源线规则 如果未生效&#xff1a; ① 提升优先级即可。 ②查看使能选项有没有勾选

20:【stm32】定时器一:时基单元

时基单元 1、什么是定时器2、时基单元的基本结构2.1&#xff1a;脉冲的来源2.2&#xff1a;预分频器PSC2.3&#xff1a;计数器CNT2.4&#xff1a;update事件与预加载 3、标准库编程3.1&#xff1a;通过定时器中断来设置延迟函数 1、什么是定时器 定时器是一种专门负责定时功能…

Vue 满屏纵向轮播图

目录 前言轮播图效果展示具体实现实现思路具体代码前言 今天汇总一个需求,还是之前写的,要求写一个满屏的轮播图,准确的说,是鼠标滑动到轮播图的时候,轮播图固定在屏幕上,随着其中的轮播子项遍历结束后,解除固定的效果。原本我最开始想直接修改Element-UI的组件的,但是…

CISAW认证考试的时间是多久

CISAW&#xff0c;即中国信息安全保障人员&#xff0c;是中国信息安全认证与审查中心进行权威认证的缩写。它是全国范围内最为权威、最高端的信息安全认证之一。作为信息安全领域的重要认证&#xff0c;对于从事网络安全工作的人员来说具有极其重要的意义。因此&#xff0c;备考…

【容器安全系列Ⅲ】- 深入了解Capabilities的作用

在本系列的上一部分中&#xff0c;我们提到 Docker 容器尚未使用 time 命名空间。我们还探讨了容器在许多情况下如何以 root 用户身份运行。考虑到这两点&#xff0c;如果我们尝试更改容器内的日期和时间会发生什么&#xff1f; 为了测试这一点&#xff0c;我们先运行 docker r…

入门网络安全工程师要学习哪些内容

大家都知道网络安全行业很火&#xff0c;这个行业因为国家政策趋势正在大力发展&#xff0c;大有可为!但很多人对网络安全工程师还是不了解&#xff0c;不知道网络安全工程师需要学什么?知了堂小编总结出以下要点。 网络安全工程师是一个概称&#xff0c;学习的东西很多&…

2000-2023年逐年最大NDVI数据集(500m)

植被指数&#xff08;NDVI, Normalized Difference Vegetation Index&#xff09;可以准确反映地表植被覆盖状况。目前&#xff0c;NDVI时序数据已经在各尺度区域的植被动态变化监测、土地利用/覆被变化检测、宏观植被覆盖分类和净初级生产力估算等研究中得到了广泛的应用。 中…

【java】RuoYi-Vue前后端分离版本-请求被拦截,怎么修改拦截过滤器,解决方案

【java】RuoYi-Vue前后端分离版本-请求被拦截&#xff0c;怎么修改拦截过滤器 它用到了一个安全管理框架Spring Security 你可以通过这篇文章《Spring Security 详解》 去了解它&#xff0c;怎么使用或者使用原理。 所有业务都受SecurityConfig配置所过滤 SecurityConfig配置…

【功能自动化】使用Excel文档获取参数数据

环境搭建&#xff1a; 1.需要配置WebTours网站 2.安装pandas pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python_dateutil…

设计模式(3)结构型模式

结构型模式 结构型模式1. Adapter&#xff08;适配器模式&#xff09;2. Bridge&#xff08;桥接模式&#xff09;3.Composite&#xff08;组合模式&#xff09;4.Decorator&#xff08;装饰模式&#xff09;5.Facade&#xff08;外观模式&#xff09;6.Flyweight&#xff08;享…

14、Ripper

难度 低->中 目标 一个root 两个flag kali 192.168.135.58 靶机 192.168.135.104 netdiscover -i eth0 -r 192.168.135.0/24 端口扫描 先访问一下80端口和10000端口&#xff0c;这两个都是web服务的样子 80端口是初始化界面&#xff0c;可以尝试扫扫目录 访问10000端口…

Linux升级lib64中的libc.so.6导致所有命令失效

ls: relocation error: libpthread.so.0: symbol __libc_dl_error_tsd, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference 升级Glibc后出现所有shell命令都不可用 # systemctl status systemctl: relocation error: /lib64/libpthread.so.0: sy…