【大厂AI课学习笔记】【2.1 人工智能项目开发规划与目标】(7)特征工程的基本方法

今天来学习特征工程的基本方法。

基本方法包括:特征选择(Feature Selection)、特征提取(Feature Extraction)和特征构建(Feature Construction)。

一、特征选择(Feature Selection)

从给定的特征集合中选出相关特征子集的过程。

去除无关特征,降低特征学习难度,让模型简单,降低计算复杂度。

抛弃这部分特征(冗余特征),可能会降低模型的性能,计算复杂度 和 模型性能 之间的取舍。

要注意不能丢弃重要特征!

这是一个取舍的问题,诚然,数据决定着模型的性能和质量,但是数据维度过大,也是一个灾难。

二、特征提取(Feature Extraction)

一般是在特征选择之前,提取的对象是原始数据,目的是自动构建新特征(深度学习),将原始数据构建为一组具有明显物理意义(Gabor、纹理特征、几何特征)或统计意义的特征。

特征提取-转换;特征选择-挑选;

特征提取,是将原始数据进行转换,构建新的特征;特征选择则是挑选,进行数据的取舍。

三、特征构建(Feature Construction)

从原始数据中人工构建新的特征,观察原始数据,思考问题的潜在形式和数据结构,数据特殊性和机器学习实战有助于构建。

特征的构建,需要“读”数据,需要一定的创造力和想象力!这是非常有趣的环节!

比如上面的数据,要进行读和分析,看到有Dog和Cat两种动物,同时有时间,进行一定的转换,发现其中的规律和特征。

延伸学习:

(以下内容整理自网络、文心一言等出处,并非课程笔记,因此成为延伸学习,每篇笔记均有延伸学习的环节。如果相关定义和内容和笔记有出入,仅供参考。)

特征工程中的特征挑选、特征提取与特征构建

1. 特征挑选(Feature Selection)

定义:特征挑选是从原始特征集中选择出对模型预测性能有重要贡献的特征子集的过程。

场景:当数据集包含大量特征时,其中许多特征可能是冗余的、不相关的或噪声,这些特征会降低模型的性能。特征挑选旨在去除这些不相关或冗余的特征,提高模型的泛化能力和计算效率。

关键技术:常见的特征挑选技术包括过滤法(如方差阈值、相关系数、卡方检验等)、包装法(如递归特征消除、基于模型的特征选择等)和嵌入法(如基于树模型的特征重要性选择)。

举例:在信用卡欺诈检测中,原始数据集可能包含用户的交易金额、交易时间、交易地点等数十个特征。通过特征挑选,可以选择出如“交易金额”、“交易频率”、“异常交易地点”等对欺诈检测最为重要的特征,从而简化模型并提高性能。

2. 特征提取(Feature Extraction)

定义:特征提取是通过转换或组合原始特征,创造出新的、更有代表性的特征集的过程。

场景:当原始数据集中的特征不足以充分描述数据的内在结构或模式时,或者当特征维度过高导致计算复杂时,需要进行特征提取。

关键技术:常见的特征提取技术包括主成分分析(PCA)、线性判别分析(LDA)、独立成分分析(ICA)等降维方法,以及文本处理中的词袋模型、TF-IDF等。

举例:在图像识别中,原始数据是像素矩阵,直接将其作为特征会导致维度过高。通过特征提取技术如卷积神经网络(CNN),可以从原始像素中提取出边缘、纹理等低层次特征,再进一步组合成高层次的抽象特征,从而有效提高图像识别的准确性。

3. 特征构建(Feature Construction)

定义:特征构建是根据领域知识和对数据的理解,手动创造新的特征以捕获数据中重要信息的过程。

场景:当现有特征无法充分描述业务场景或目标变量时,或者当领域知识表明某些特定组合或变换对模型性能有显著提升时,需要进行特征构建。

关键技术:特征构建依赖于领域知识和数据分析技能,没有固定的技术方法。常见的操作包括特征的组合(如相乘、相加)、变换(如对数变换、幂变换)和编码(如独热编码、标签编码)等。

举例:在房价预测中,除了房屋的面积、卧室数等直接特征外,还可以通过特征构建创造出如“面积与卧室数的比值”、“每平方米的价格”等更有意义的特征。这些新构建的特征可能更能反映房价的实际影响因素,从而提高预测模型的准确性。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智慧图书管理系统架构设计与实现

随着数字化时代的到来,智慧图书管理系统在图书馆和机构中扮演着重要的角色。一个优秀的图书管理系统不仅需要满足基本的借阅管理需求,还需要具备高效的性能、良好的扩展性和稳定的安全性。本文将讨论智慧图书管理系统的架构设计与实现,以满足…

shell脚本之高级变量

目录 一、高级变量赋值 1、高级变量赋值总结表 2、相关操作 二、变量间接引用 1、eval命令 一、高级变量赋值 1、高级变量赋值总结表 变量配置方式str 无配置str 为空字符串str 已配置为非空字符串var${str-expr}varexprvarvar$strvar${str:-expr}varexprvarexprvar$str…

GPT-4对编程开发的支持

在编程开发领域,GPT-4凭借其强大的自然语言理解和代码生成能力,能够深刻理解开发者的意图,并基于这些需求提供精准的编程指导和解决方案。对于开发者来说,GPT-4能够在代码片段生成、算法思路设计、模块构建和原型实现等方面给予开…

H5 个人引导页带赞助版源码

H5 个人引导页带赞助版源码 源码介绍:一款带有4个选项的H5自适应引导页,右侧有QQ和微信联系按钮。带有三个赞助按钮。 下载地址: https://www.changyouzuhao.cn/9883.html

印度基金低风险套利回顾

2024年1月19日当天,印度基金(164824)开放申购,限额申购100元,当天溢价率13%左右,这个溢价率已经非常可观了,当然要祭出一拖七大法搞它一把! 一拖七套利原理简介 详细的原理和方法可自行在雪球搜索&#…

yolov8源码解读Detect层

yolov8源码解读Detect层 Detect层解读网络各层解读及detect层后的处理 关于网络的backbone,head,以及detect层后处理,可以参考文章结尾博主的文章。 Detect层解读 先贴一下全部代码,下面一一解读。 class Detect(nn.Module):"""YOLOv8 …

每日五道java面试题之java基础篇(十一)

目录: 第一题. Java死锁如何避免?第二题. 为什么⽤线程池?解释下线程池参数?第三题. 线程池的底层⼯作原理第四题. ReentrantLock中tryLock()和lock()⽅法的区别第五题. Sychronized和ReentrantLock的区别? 第一题. Java死锁如何避免&#x…

Open CASCADE学习|曲线的切线

今天要实现的功能是在曲线的终点处沿切线方向延长该曲线。为了解决这个问题,需要求解该曲线在终点处的坐标值以及切矢量。问题转化为:已知曲线TopoDS_Edge aE,求其在终点处的坐标值及切线方向向量。 首先,将TopoDS_Edge对象转化为…

数组转二叉树的一种方法-java(很特殊)

上代码 Node节点的代码 public class ThreadNode {private int data;private ThreadNode left;private boolean leftTag; // 左子节点是否为线索private ThreadNode right;private boolean rightTag; // 右子节点是否为线索// ... 省略get和set方法// ... 省略构造方法// ... …

C语言系列(所需基础:大学C语言及格)-1-编译器/简单的求和代码/数据类型/变量的分类/变量的作用域和生命周期

文章目录 一、编译器(使用在线编译器)二、简单的求和代码三、数据类型四、变量的分类五、变量的作用域和生命周期 一、编译器(使用在线编译器) 为了方便,我使用的是在线的C语言编译器进行程序的运行。 链接&#xff1…

turn服务器debug

turn服务器正常能连通的调用堆栈 turn_port.cc AddRequestAuthInfo check 崩溃 有问题的turn msg type是259 request type 是3 用不了的turn 服务器turnmessage type 275

代码随想录 Leetcode763. 划分字母区间

题目&#xff1a; 代码(首刷看解析 2024年2月18日&#xff09;&#xff1a; class Solution { public:vector<int> partitionLabels(string s) {int hash[27] {0};for (int i 0; i < s.size(); i) {hash[s[i] - a] i;}vector<int> res;int left 0;int righ…

C++学习Day05之强化训练---数组类封装

目录 一、程序及输出1.1 数组类头文件1.2 数组类.cpp1.3 主程序 二、分析与总结 一、程序及输出 1.1 数组类头文件 myArray.h #include<iostream> using namespace std;class MyArray { public:MyArray(); //默认构造 可以给100容量MyArray(int capacity); //有参构造…

CogVLM训练源码解读--数据处理

文章目录 前言一、数据主函数源码解读1、图像函数源码调用解读2、文本函数源码调用解读3、tokenizer生成函数4、llama2_text_processor文本处理函数解读 二、create_dataset_function函数源码代码解读三、sat库之make_loaders函数源码解读1、make_loaders函数调用说明2、make_l…

CSS 多色阴影效果和旋转动画的加载指示器

<template><!-- 创建一个装载加载动画的容器 --><view class="loader"><!-- 内部阴影层,用于放置动态文本 --><view class="intern"></view><!-- 外部阴影层,包含旋转和颜色变化的圆形阴影 --><view class…

RK3399平台开发系列讲解(USB篇)USB 枚举和断开过程

🚀返回专栏总目录 文章目录 一、连接与检测二、USB设备枚举三、断开过程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢介绍 USB 枚举/断开过程。 一、连接与检测 二、USB设备枚举 USB设备枚举一

第六节笔记:OpenCompass 大模型评测

视频链接&#xff1a;https://www.bilibili.com/video/BV1Gg4y1U7uc/?spm_id_from333.788&vd_source3bbd0d74033e31cbca9ee35e111ed3d1

手写myscrapy(二)

我们看一下scrapy的系统架构设计方法和思路&#xff1a; 模块化设计&#xff1a; Scrapy采用模块化设计&#xff0c;将整个系统划分为多个独立的模块&#xff0c;包括引擎&#xff08;Engine&#xff09;、调度器&#xff08;Scheduler&#xff09;、下载器&#xff08;Downl…

RIP协议详解

​RIP是最早的动态路由协议&#xff0c;虽然已经过时并且很少使用&#xff0c;但是可以通过学习RIP并且和ospf等现在正在使用的路由协议对比&#xff0c;了解其工作原理和过时原因&#xff0c;具有很强的学习性。 一、RIP协议简介 RIP&#xff08;Routing Information Protoc…

Vue22 Vue监测数据改变的原理_数组

实例 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>Vue监测数据改变的原理_数组</title><!-- 引入Vue --><script type"text/javascript" src"../js/vue.js"></script>&…