机器学习(三) -- 特征工程(2)

系列文章目录

机器学习(一) -- 概述

机器学习(二) -- 数据预处理(1-3)

机器学习(三) -- 特征工程(1-2)

未完待续……


目录

系列文章目录

前言

三、特征预处理

1.1、无量纲化

2、归一化

2.2.1、线性归一化

2.2.1、***最大最小均值归一化

2.2.1、***最大绝对值归一化

3、标准化

四、特征降维

2、特征选择

2.4、低方差特征过滤

2.5、皮尔逊相关系数(Pearson Correlation Coefficient)

3、主成分分析(PCA)


机器学习(三) -- 特征工程(1)


前言

tips:这里只是总结,不是教程哈。

“***”开头的是给好奇心重的宝宝看的,其实不太重要可以跳过。

此处以下所有内容均为暂定,因为我还没找到一个好的,让小白(我自己)也能容易理解(更系统、嗯应该是宏观)的讲解顺序与方式。

第一文主要简述了一下机器学习大致有哪些东西(当然远远不止这些),对大体框架有了一定了解。接着我们根据机器学习的流程一步步来学习吧,掐掉其他不太用得上我们的步骤,精练起来就4步(数据预处理,特征工程,训练模型,模型评估),其中训练模型则是我们的重头戏,基本上所有算法也都是这一步,so,这个最后写,先把其他三个讲了,然后,在结合这三步来进行算法的学习,兴许会好点(个人拙见)。


三、特征预处理

1、定义

通过一些转换函数,将特征数据转换成更适合算法模型的特征数据的过程。

1.1、无量纲化

也称为数据的规范化,是指不同指标之间由于存在量纲不同致其不具可比性,故首先需将指标进行无量纲化,消除量纲影响后再进行接下来的分析。

数值数据的无量纲化:主要有两种归一化、标准化

为什么要进行归一化/标准化?

特征的单位或者大小相差较大,或者某特征的方法相比其他的特征要大出几个数量级,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征

特征预处理API

sklearn.preprocessing

2、归一化

tips:归一化也叫离差标准化,(标准化,也叫标准差标准化,Z-Score标准化)

2.1、定义

将特征缩放到一个特定的范围,通常是[0, 1]。

2.2、分类和公式

2.2.1、线性归一化

这是最常用的归一化,也叫最大-最小归一化或最大-最小规范化。(后面也是用的这种哈)

X=\frac{X-min(X)}{max(X)-min(X)}

2.2.1、***最大最小均值归一化

X=\frac{X-mean(X)}{max(X)-min(X)}

2.2.1、***最大绝对值归一化

X=\frac{X}{\left \| X_{max} \right \|}

2.3、API

sklearn.preprocessing.MinMaxScaler
导入:
from sklearn.preprocessing import MinMaxScaler

2.4、实例

# 2、实例化一个转换器类
transform = MinMaxScaler()
# transform = MinMaxScaler(feature_range=[2,3])# 3、调用fit_transform
data_new = transform.fit_transform(data)print("data_new:\n", data_new)

转换器中添加feature_range=[2,3]属性,将缩放范围变为[2,3]。

3、标准化

2.1、定义

将特征缩放为均值为0,标准差为1的分布。

2.2、公式

X=\frac{X-\mu }{S},其中μ是均值,S是标准差

2.3、API

sklearn.preprocessing.StandardScaler
导入:
from sklearn.preprocessing import StandardScaler

2.4、实例

# 2、实例化一个转换器类
transform = StandardScaler()
#transform = StandardScaler(feature_range=[2,3])# 3、调用fit_transform
data_new = transform.fit_transform(data)print("data_new:\n", data_new)

4、***小数定标标准化

X=\frac{X}{10^{lg\left | max(X) \right |}}

思想:通过移动数据的小数点位置来缩放特征值,使其落在一个较小的范围内,从而提高模型训练的效率和准确性。

4、***other

其实还有其他的,指数化,对数化,离散化(等频(等深)分箱、等距(等宽)分箱),正规化等。

四、特征降维

1、定义

降维是指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程。

降维的两种方式:特征选择、主成分分析(可以理解一种特征提取的方式)

2、特征选择

2.1、定义

数据中包含冗余或相关变量(或称特征、属性、指标等),旨在从原有特征中找出主要特征。

2.2、方法

Filter过滤式:

                主要探究特征本身特点、特征与特征和目标值之间关联

        方差选择法:低方差特征过滤

        相关系数:特征与特征之间的相关程度

Embedded嵌入式:

                算法自动选择特征(特征与目标值之间的关联)

        决策树:信息熵、信息增益

        正则化:L1,L2

        深度学习:卷积等

2.3、API

sklearn.feature_selection

2.4、低方差特征过滤

删除低方差的一些特征

  • 特征方差小:某个特征大多样本的值比较相近
  • 特征方差大:某个特征很多样本的值都有差别

API

sklearn.feature_selection.VarianceThreshold
导入:
from sklearn.feature_selection import VarianceThreshold

# 2、实例化一个转换器类
#transform = VarianceThreshold()
transform = VarianceThreshold(threshold=10)# 3、调用fit_transform
data_new = transform.fit_transform(data)print("data_new\n", data_new,' \n data_new.shape:', data_new.shape)

 训练集差异低于threadshold的特征将被删除。默认值是保留非零方差特征,即删除所有样本中具有相同值的特征

2.5、皮尔逊相关系数(Pearson Correlation Coefficient)

反映变量之间相关关系密切程度的统计指标.

2.5.1、公式

r=\frac{n\sum xy-\sum x\sum y}{\sqrt{n\sum x^{2}-(\sum x)^{2}}\sqrt{n\sum y^{2}-(\sum y)^{2}}}

相关系数的值介于-1与+1之间:

当r>0时,表示两变量正相关;
r<0时,两变量为负相关;
当|r|=1时,表示两变量为完全相关;
当r=0时,表示两变量间无相关关系;
当0<|r|<1时,表示两变量存在一定程度的相关。且|r|越接近1,两变量间线性关系越密切;|r|越接近0,表示两变量的线性相关越弱。

一般可按三级划分:|r|<0.4为低度相关;0.4<=|r|<0.7为显著相关;0.7<=|r|<1为高维线性相关

2.5.2、实例

API

from scipy.stats import pearsonr
from sklearn.feature_selection import VarianceThreshold

# 2、实例化一个转换器类
#transform = VarianceThreshold()
transform = VarianceThreshold(threshold=10)# 3、调用fit_transform
data_new = transform.fit_transform(data)print("data_new\n", data_new,' \n data_new.shape:', data_new.shape)# 计算两个变量之间的相关系数
r = pearsonr(data["pe_ratio"],data["pb_ratio"])print("相关系数:\n", r)

前面的数为相关系数。

3、主成分分析(PCA)

3.1、定义

旨在利用降维的思想,把多指标转化为少数几个综合指标(即主成分),其中每个主成分都能够反映原始变量的大部分信息,且所含信息互不重复。

作用:是数据维数的压缩,尽可能降低原数据的维数(复杂度),损失少量信息

3.2、实例

API

sklearn.decomposition.PCA
导入:
from sklearn.decomposition import PCA

# 1、实例化一个转换器类
transform = PCA(n_components=2)  # 4个特征降到2个特征# 2、调用fit_transform
data_new = transform.fit_transform(data)print("data_new\n", data_new)# 1、实例化一个转换器类
transform2 = PCA(n_components=0.95)  # 保留95%的信息# 2、调用fit_transform
data_new2 = transform2.fit_transform(data)print("data_new2\n", data_new2)

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

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

相关文章

精准掌控 Git 忽略规则:定制化 .gitignore 指南

&#x1f9d9;‍♂️ 诸位好&#xff0c;吾乃诸葛妙计&#xff0c;编程界之翘楚&#xff0c;代码之大师。算法如流水&#xff0c;逻辑如棋局。 &#x1f4dc; 吾之笔记&#xff0c;内含诸般技术之秘诀。吾欲以此笔记&#xff0c;传授编程之道&#xff0c;助汝解技术难题。 &…

前端中级算法题

前端中级算法题 反转字符串 编写一个函数&#xff0c;接受一个字符串作为输入&#xff0c;并返回反转后的字符串。 示例&#xff1a; function reverseString(str) {return str.split().reverse().join(); }reverseString(hello); // 输出: olleh 找出数组中的最大值 编写一个函…

统信UOS操作系统上扩容数据盘

原文链接&#xff1a;统信UOS操作系统上扩容数据盘 hello&#xff0c;大家好啊&#xff01;今天我要给大家介绍的是在统信UOS操作系统上扩容数据盘的方法。在使用UOS的过程中&#xff0c;随着数据的不断增加&#xff0c;原有磁盘空间可能会变得不足&#xff0c;这时候就需要对数…

【2024年必看】私域裂变的10大秘籍,让你轻松玩转市场!

在私域时代&#xff0c;企业需要不断地寻找新的用户来扩大自己的用户群体。然而&#xff0c;随着获客成本的逐渐升高&#xff0c;传统的广告宣传和推广方式已经不再是最优选择。因此&#xff0c;“老带新”的裂变策略成为了企业拉新的首选。 通过给予老用户奖励&#xff0c;刺…

汽车标定技术(十四)--标定数据固化方法简介

目录 1.标定数据固化方法 1.1 基于XCP固化 1.2 基于UDS固化 2. 具体实现形式 2.1 CAN

到底是1K=1024还是1K=1000呢?

问题 举例&#xff1a;15GB的数据块的大小是15*2的30次方*8bit&#xff1b;而10Gbit/s的传输速率是10*10的9次方bit/s 那么问题来了&#xff1a;这个G到底是2的30次方还是10的9次方呢&#xff1f;&#xff1f;&#xff1f; 理解 由于在计算机内部采用的是二进制&#xff…

分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机多特征分类预测

分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机多特征分类预测 目录 分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现DBO-SVM蜣螂算法优化支持向量机多特征分类预测&#xff08;完整…

第十三章 创建Callout Library - 兼容的语言和编译器

文章目录 第十三章 创建Callout Library - 兼容的语言和编译器兼容的语言和编译器标注库 Runup 和 Rundown 函数 第十三章 创建Callout Library - 兼容的语言和编译器 兼容的语言和编译器 使用 $ZF Callout Interface&#xff0c;可以用外部语言编写函数并从 ObjectScript 调…

html引入react以及hook的使用

html引入react 效果代码注意 效果 分享react demo片段的时候&#xff0c;如果是整个工程项目就有点太麻烦了&#xff0c;打开速度慢&#xff0c;文件多且没必要&#xff0c;这个时候用html就很方便。 在html中能正常使用useState 和 useEffect 等hook。 代码 <!DOCTYPE htm…

2024三掌柜赠书活动第一期:TVM编译器原理与实践

目录 前言TVM编译器的实现过程关于《TVM编译器原理与实践》编辑推荐内容简介作者简介图书目录书中前言/序言《TVM编译器原理与实践》全书速览结束语 前言 随着人工智能的发展&#xff0c;计算机视觉、自然语言处理和语音识别等领域的需求不断增加。为了更好地满足这些需求&am…

【Web】CTFSHOW元旦水友赛部分wp

目录 ①easy_include ②easy_web ③easy_login web一共5题&#xff0c;我出了3题&#xff0c;巧的是好像师傅们也只出了3题&#xff0c;跨年拿旗还是很快乐的&#xff0c;下面直接贴出自己的wp. ①easy_include pearcmd不解释 这里主要是 &#xff0c;file://协议支持以fi…

xdoj综合,数字分解排序,文件排序,股票

数字分解排序 问题描述 输入一个9位以内的正整数n&#xff0c;按数值从高到低的顺序输出n的各位数字。 输入说明 一个正整数n(0<n<1000000000) 输出说明 按数值从高到低的顺序输出n的各位数字&#xff0c;数字之间用空格隔开 输入样例 564391 输出样例 …

BIOMOD2提供运行多达10余种物种分布模拟模型

随着生物多样性全球大会的举办&#xff0c;不论是管理机构及科研单位、高校都在积极准备&#xff0c;根据国家林草局最新工作指示&#xff0c;我国将积极整合、优化自然保护地&#xff0c;加快推进国家公园体制试点&#xff0c;构建以国家公园为主体的自然保护地体系。针对我国…

Text visualization : pipeline,wordle,phrase net,word tree

Text visualization&#xff08;文本可视化&#xff09;是一种将文本数据转换为可视形式的技术&#xff0c;以便更好地理解和分析文本内容。以下是可能会涉及的几个知识点&#xff1a; 1. Pipeline&#xff08;流程图&#xff09;&#xff1a;Pipeline是指将文本可视化的过程划…

网络安全B模块(笔记详解)- 数字取证

数据分析数字取证-attack 1.使用Wireshark查看并分析Windows 7桌面下的attack.pcapng数据包文件,通过分析数据包attack.pcapng找出恶意用户的IP地址,并将恶意用户的IP地址作为Flag(形式:[IP地址])提交; 解析:http.request.method==POST ​ Flag:[172.16.1.102] 2.继续…

SM2——适用于前后端(java+vue)公用的SM2国密加解密传输

目录 一、SM2国密加解密算法1.1、pom文件引入依赖包1.2、SM2加解密工具类1.3、测试类 一、SM2国密加解密算法 1.1、pom文件引入依赖包 <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk18on</artifactId><version>…

Maple2023安装包下载及安装教程

Maple 2023下载链接&#xff1a;https://docs.qq.com/doc/DUkFJY1NkTk9mZnBM 1.选中下载好的安装包&#xff0c;鼠标右键解压到“Maple 2023”文件夹 2.选中setup-windows.exe&#xff0c;鼠标右击选择“以管理员身份运行” 3.点击“OK” 4.点击“Next” 5.选择I accept the ag…

中科驭数鄢贵海新年演讲:数字经济下的算力基础先行,DPU自主创新力量大有可为

近日&#xff0c;中科驭数创始人、CEO鄢贵海受邀在北京电视台《金融街午餐会》新年特别活动中发表新年演讲。 鄢贵海在新年演讲中提到&#xff0c;在21世纪头30年&#xff0c;我们不可思议地经历了三次重要的科技变革&#xff0c;分别是互联网的普及、移动互联网的崛起、以及人…

C++面向对象高级编程(侯捷)笔记2

侯捷C面向对象高级编程 本文是学习笔记&#xff0c;仅供个人学习使用&#xff0c;如有侵权&#xff0c;请联系删除。 如果你对C面向对象的组合、继承和委托不了解&#xff0c;对什么是拷贝构造、什么是拷贝赋值和析构不清楚&#xff0c;对类设计中的Adapter、pImpl、Template…

AJAX(一)

一、AJAX简介 AJAX全称为 Asynchronous JavaScript And XML,就是异步的JS和XML。 通过AJAX可以在浏览器中向服务器发送异步请求&#xff0c;最大的优势&#xff1a;无刷新获取数据 AJAX不是新的编程语言&#xff08;使用的js)&#xff0c;而是一种将现有的标准组合在一起使用的…