IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 对于特征编码方式的一些理解 -> 正文阅读

[人工智能]对于特征编码方式的一些理解


动机

最近在针对ASRS(Aviation Safety Reporting System)数据集做航空安全风险分析的项目时,发现数据分布十分不均衡:

  1. 大部分为空值属性列
  2. 各列均为字符类别
  3. 各列类别大多为上千维
    对于该种数据,若进行One-Hot编码,则会有极为稀疏的六万多维属性。并且One-Hot编码方式实际上假设了每个属性之间是独立的,但是例如“晴天”、“阴天”、“雨天”之间并不应该是各自独立,“阴天”和“雨天”的距离应该离的更近。

Label Encode

该方法实际上为每个属性之间增加了一层数值大小的关系,而实际上每个属性之间并不具备这样的大小关系,并不适合作为神经网络的编码方式。

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
data[列名] = le.fit_transform(data[列名].values)

One-hot Encode

Onehot编码方式假设了每个属性之间都是相互独立的,并且参数量较大。
在这里插入图片描述

import pandas as pd

data = [
    ['男', 23, '研究生'],
    ['女', 25, '小学生'],
    ['男', 25, '工作']
]
data = pd.DataFrame(data)
data = pd.get_dummies(data)

Multi-Class Embedding

1. 实际含义

在数学上表示一个 m a p i n g → f : X ? > Y maping → f: X -> Y mapingf:X?>Y, 也就是一个function,其中该函数是injective(就是我们所说的单射函数,每个Y只有唯一的X对应,反之亦然)和structure-preserving (结构保存,比如在X所属的空间上X1 < X2,那么映射后在Y所属空间上同理 Y1 < Y2)。那么对于multi-class embedding,就是将类别属性映射到另外一个空间,其中这个映射具有injective和structure-preserving的特点。

2. 分布式假设

然而每个属性并不是彼此无关的,并不是完全独立的关系。

3. 降低参数量

若假设网络只有输入层和输出层,网络参数的计算公式为:
θ = ( i n p u t _ n u m ) ? ( n _ c l a s s ) + n _ c l a s s \theta=(input\_num)*(n\_class)+n\_class θ=(input_num)?(n_class)+n_class
风险等级一共分五类,因此 n _ c l a s s = 5 n\_class=5 n_class=5,若One-Hot输入维度为30000维,则 θ 1 = 30000 ? 5 + 5 = 150005 \theta_1=30000*5+5=150005 θ1?=30000?5+5=150005个参数,而实际上当multi-class embedding一共映射的维度为1000维的时候,实验效果已经超过One-Hot的30000维,并且此时 θ 2 = 1000 ? 5 + 5 = 5005 \theta_2=1000*5+5=5005 θ2?=1000?5+5=5005个,在提高了网络性能的同时,参数量降低了30倍,模型效率大大提升。

4. Embedding目标

从数据中自动学习从输入到向量空间的映射 f e a t u r e = f ( i n p u t ) feature=f(input) feature=f(input),得到的结果是在对应的向量空间中可以衡量两个类别属性距离的关系。
在这里插入图片描述

5. 训练方法

无监督学习中常用思想是:当得到数据后,我们又不知道目标输出时x→y( y = f ( x ) y=f(x) y=f(x)),于是可以连接另一个任务,先学习从x→z: z = g ( x ) z=g(x) z=g(x)的映射,通过设定的损失来优化该映射,然后通过 f f f映射的输出,直接输入到目标任务中 y = f ( z ) y=f(z) y=f(z)

在该任务中,实际上就是学习两个映射,从input到embedding、从embedding到output:
z = E m b e d d i n g ( x ) , y = f ( z ) = f ( E m b e d d i n g ( x ) ) z=Embedding(x), y=f(z)=f(Embedding(x)) z=Embedding(x),y=f(z)=f(Embedding(x))
其中, y = f ( x ) y=f(x) y=f(x)是我们目标任务的映射。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:26:48  更:2022-04-24 09:30:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:26:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码