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

news2024/9/19 10:37:41

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

一.提问环节

        机器学习是什么?

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

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

 机器学习的概念关: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.coloradmin.cn/o/2059421.html

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

相关文章

多线程编程的拙见

一. 线程和进程的概念 1.为什么引入多线程编程? 在多线程(Multithreaded,MT)编程出现之前,电脑程序的运行由一个执行序列组成,执行序列按顺序在主机的中央处理器CPU中运行。即使整个程序由多个相互独立无…

基于Yolov5的安全帽检测系统设计与开发(论文+源码)_kaic

摘 要 安全帽检测系统的设计意义在于提高工作场所的安全性和生产效率,通过安全帽检测系统可以实时监控工人是否佩戴安全帽,及时发现不佩戴安全帽的工人并进行提醒和警示,避免因为不佩戴安全帽导致意外事故的发生。因此,本文是一个…

云呼叫中心系统哪家好?这个系统强烈推荐

云呼叫中心系统作为企业客户服务与运营的核心平台,正逐步成为提升企业竞争力的关键要素。面对市场上琳琅满目的云呼叫中心系统提供商,企业往往面临选择难题:“云呼叫中心系统哪家好?” 云呼叫中心系统:定义与核心功能 …

【HuggingFace Transformers】BertModel源码解析

BertModel源码解析 1. BertModel 介绍2. BertModel 源码逐行注释 1. BertModel 介绍 BertModel 是 transformers 库中的核心模型之一,它实现了 BERT(Bidirectional Encoder Representations from Transformers)模型的架构。BERT 是基于 Trans…

百数教学——企业互联,让业务合作跨越距离与障碍

一、简介 企业互联作为强大的纽带,不仅促进了企业间的紧密合作与深入交流,还显著提升了企业的运营效率和市场竞争力。它通过无缝链接外部组织,实现双方企业项目数据的即时共享与整合,从而深化了业务合作的层次与广度,…

如何在SOLIDWORKS中自定义材料库

使用SolidWorks对模型进行评估时都需要现定义一个材料;例如:测量模型的质量属性、使用限元分析模型等,SolidWorks自带了丰富的材质库,满足了绝大部分的设计需求。但是难免会遇到一些特点的材质属性,在SOLIDWORKS中无法…

【LLM大模型论文日更】| 格式胜过内容:揭示大型语言模型的提示效应

论文:https://arxiv.org/pdf/2408.08780代码:未开源机构:北京大学领域:提示学习,上下文学习发表:arXiv 研究背景 研究问题:这篇文章探讨了在上下文学习(ICL)中&#xf…

ubuntu20.4 安装postgresql并远程连接

1、安装对应的库 如果提示安装失败,E: Unable to locate package postgresql这个错误的话,那就更新下,执行sudo apt update 命令,再次下载,应该就可以成功 sudo apt install postgresql 2、端口设置 检查5432端口是否监听 ss -nlt 需要将多个远程客户端连接上数据库,配…

合宙LuatOS产品规格书——Air700ECQ

Air700ECQ是合宙通信推出的LTECat.1bis通信模块; Air700ECQ采用移芯EC716E平台,支持LTE3GPPRel.13技术; Air700ECQ支持移动双模,超小封装,极致成本,满足小型化低成本需求。 Air700ECQ支持单1.8/3.0V USIM…

酒店民宿在线预约系统,搭建全攻略

在旅游业的推动下,酒店民宿获得了更多的发展机遇。随着数字化的来临,酒店民宿也迎来了转型升级,线上预约酒店民宿小程序成为了必不可少的发展方式。小程序可以为酒店民宿提供一个高效便利的在线预约系统,满足用户预约酒店的需求&a…

20. 数据可视化

20. 数据可视化 本章概述一. `elasticsearch`实现数据统计1.1 创建用户信息索引1.1.1 控制台创建`aggs_user`索引1.1.2 `aggs_user`索引结构初始化1.1.3 `aggs_user`索引的`EO`对象1.1.4 用户类型枚举1.1.5 数据初始化1.2 内置统计聚合1.2.1 `terms`与`date_histogram``terms``…

传统RFID标签与RFID光触发标签的全面差异解读

在当今数字化、智能化的大趋势下,RFID技术凭借其非接触式自动识别的独特优势,在物流、零售、制造等众多领域得到了广泛应用。其中,RFID标签作为承载数据和实现识别的关键组件,不断推陈出新,传统RFID标签虽已历经多年发…

BER编码的Identifier octets

在了解DLMS/COSEM应用层协议的时候有必要了解一下ASN.1、BER、A-XDR。 这里只对部分做记录。 参考资料:ASN.1、BER和DER的PKCS相关子集入门介绍_golang asn1-CSDN博客 1、介绍 抽象语法表示法一(ASN.1)、基本编码规则(BER&…

工厂现场多功能帮手,三防平板改善管理体验

随着制造业的智能化变革,信息化、自动化和智能化逐渐成为工厂管理的新常态。在这一波技术浪潮中,三防平板作为一种多功能的工作工具,正在逐步改善工厂现场的管理体验。 一、三防平板的定义与特点 三防平板,顾名思义,是…

一篇文章讲清楚Zotero所有实用插件

主要介绍常用的zotero基础高使用&高实用插件及功能展示。 zotero7更新链接:链接 目录 插件表一览插件列表插件效果展示actions and Tags for Zotero插件说明插件设置Awesome GPTBetter Notes for zoteroCrush ReferenceEasier CitationEthereal Stylejasminum…

谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型

家人们!微软又用爱发电了!一觉醒来,微软发布了最新的小模型三兄弟: Phi-3.5-MoE-instruct Phi-3.5-mini-instruct Phi-3.5-vision-instruct 三兄弟的表现可以说是相当的不错,其中,Phi-3.5-MoE 在基准测…

【NVM-下载、安装、使用】

前置条件 已经安装node,需要卸载node # 查看是否安装nodejs,展示版本则是已安装 node -v 在控制面板中卸载nodejs 删除nodejs安装目录 删除.npmrc配置文件(不知道在什么位置可以直接搜索.npmrc) 查看是否删除成功 node -v 提示【不是内部或外部命令&…

代码随想录-暑假算法第六天(贪心算法篇)(记得要回看,还有一些不怎么理解)

代码随想录-暑假算法第六天(贪心算法篇)(要回看) 题目分类大纲如下: #什么是贪心 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 这么说有点抽象,来举一个例子: 例如,有一堆钞票,你可以拿走十…

vue3使用elementui-plus时使用深度选择器穿透影响原样式

一、原样式: 下拉框选择时,右边存在一个下拉的箭头符号,那么在许多场景下我们不需要显示,这个时候就可以通过开发者工具进行定位,选中该元素,可以看到,影响的样式是:.el-icon svg 二…

Aigtek功率放大器的基本参数包括什么

功率放大器是一种用于增大输入信号功率的设备,常用于音频设备、通信设备和电子设备等领域。其基本参数包括增益、带宽、输出功率、频率响应、失真、输入灵敏度、输出阻抗等多个方面。下面将对这些参数进行详细介绍。 增益:增益是功率放大器的核心参数&am…