Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >不败给名词! 了解特征工程特征工程:2.特征预处理

不败给名词! 了解特征工程特征工程:2.特征预处理

作者头像
zhaoolee
发布于 2018-04-19 03:04:55
发布于 2018-04-19 03:04:55
1.1K00
代码可运行
举报
文章被收录于专栏:木子昭的博客木子昭的博客
运行总次数:0
代码可运行

基本概念: 人工智能 > 机器学习 > 深度学习 机器学习: 机器学习是从数据中自动分析获得规律(模型), 并利用规律对未知数据进行预测.

  • 根据用户喜好信息, 智能推荐商品(淘宝首页推荐)
  • 分析客服问答模型, 替代人工客服(JD客服)
  • 分析客户信用数据, 计算信贷额度(蚂蚁金服)

特征

对于人类个体而言姓名,年龄,性别,都是其自身的特征

特征值, 目标值

判定男女

  • 特征值(已知的): 身高, 体重, 头发长度, 体征(很多)
  • 目标值(未知的): 男, 女

样本

如果对全班学生成绩进行分析,一个学生就是一个样本


特征工程:

特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的预测准确性

  • 特征抽取
  • 特征预处理
  • 特征降维

1.特征抽取

1.1 字典特征抽取: 万能的0和1之字典特征抽取 (one-hot编码)

1.2 文本特征抽取: 对自然语言进行情感分析(CountVectorizer, TfidfVectorizer)

  • one-hot编码(字典,列表类型均可) 机器会将所有样本中, 出现过的特征统统列举出来,然后每个样本挨个比对所有特征,如果存在对应的特征则取1, 不存在则取0

one-hot

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from sklearn.feature_extraction.text import CountVectorizer
import jieba

# 肖申克影评
xsk_text = """
豆瓣有人问,为啥肖申克评价这么高?他是不是只是从一个满是泥泞的臭水沟的监牢逃出而已?其实救赎是对自己的破茧成蝶,每个人眼前都有一个模版,一个完美的人的样子,很美,很有灵魂,很有姿态,得到很多人爱。为什么自己总是做不好,自己总是不美?自己总是如此多的陋习?但是最后这一个人还是只能从自己的茧里面冲破而出,或许学会了飞,或许意境忘了怎么飞,但这个速度的快慢不会影响最早的结果,最终你还是要学会怎么从丑陋变得自信和自强~ 接受一个事实,在某个层面上,在三维时空看起来,蝴蝶都是一样的美,蝴蝶其实根本上长得一样~ 
"""
# 中文分词
xsk = jieba.cut(xsk_text)
xsk_list = [x for x in xsk]
# 实例化文本特征抽取
countvec = CountVectorizer()
# 填充并转换数据
data = countvec.fit_transform(xsk_list)
# 打印抽取的特征名
print(countvec.get_feature_names())
# 将数据以类one_hot编码方式展示
print(data.toarray())

2.特征预处理

通过特定的统计方法(数学方法)将数据转换成算法要求的数据

2.1 归一化

将某一列类型的数据,缩放到特定的范围(一般为缩放到0至1之间),相当于把满分为100分转换成满分为1分,原来百分制能考95分,现在只能算作0.95分

原始数据

归一化后

0, 0, 10

0, 0, 0

3, 3, 13

0.3, 0.15, 0.3

5, 5, 15

0.5, 0.25, 0.5

8, 8, 18

0.8, 0.4, 0.8

10, 20, 20

1, 1, 1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from sklearn.preprocessing import MinMaxScaler

# 创建实例
mm = MinMaxScaler()
# 原始数据
lee = [[0, 0, 10], [3, 3, 13], [5, 5, 15], [8, 8, 18], [10, 20, 20]]
# 为实例填充并转换数据
data = mm.fit_transform(lee)
# 打印转换后的结果
print(data)

缺点: 如果最大值过大最小值过小异常, 就容易影响准确性

2.2标准化

  • 通过对原始数据进行变换,把数据变换到均值为0,方差为1范围内
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rom sklearn.preprocessing import StandardScaler

# 标准化实例化对象
std = StandardScaler()
# 创建数据
lee = [[0, 0, 10], [3, 3, 13], [5, 5, 15], [8, 8, 18], [10, 20, 20]]
# 填充并转换数据
data = std.fit_transform(lee)
# 打印转换后的数据
print(data)

均值为0, 方差小于等于1

  • 填充缺失值
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
from sklearn.preprocessing import Imputer

# 实例化填补缺失值的对象
imp = Imputer(missing_values="NaN",strategy="mean", axis=0)
# 创建存在缺失值的数据
lee = [[np.nan, 8, 4],[8, 9, np.nan], [2, 8, 1]]
# 填充并转换数据
data = imp.fit_transform(lee)
# 打印转换结果
print(data)

3. 数据降维

3.1 特征选择: 将某些低于特定方差的特征值过滤掉(特征较少时采用)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from sklearn.feature_selection import VarianceThreshold

def var():
    """
    数据降维
    """
    
    var_thr = VarianceThreshold()

    # 第一列和第四列数据方差均为0, 会被消除
    lee = [
        [0, 2, 0, 10],
        [0, 1, 400, 10],
        [0, 1, 100, 10]]
    data = var_thr.fit_transform(lee)
    # 默认降维效果
    print("消除方差为0的特征列之后:")
    print(data)


    # 实例化variancethreshold,消除方差小于10的特征列
    var_thr2 = VarianceThreshold(threshold=10)
    # 填充并转换数据
    data2 = var_thr2.fit_transform(lee)
    # 打印结果
    print("消除方差小于10的特征列之后:")
    print(data2)

if __name__ == '__main__':
    var()

3.2主成分分析(PCA)特征较多时采用

用低维度表示高维度,例如用二维的照片表现出三维世界的立体感(尽可能损失较少的信息)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from sklearn.decomposition import PCA

def my_pca():
    lee = [[10, 15, 20, 25],
           [11, 16, 21, 26],
           [20, 25, 30, 35]]
    # n_components为整数时,表示结果保留的特征数量, n_components为小数时,表示保留的特征信息的百分比
    i_pca = PCA(n_components=2)

    data1 = i_pca.fit_transform(lee)
    print("保留两个特征的结果为:")
    print(data1)

    f_pca = PCA(n_components=0.95)

    data2 = f_pca.fit_transform(lee)
    print("保留95%信息的结果为:")
    print(data2)


if __name__ == '__main__':
    my_pca()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.01.06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【机器学习】快速入门特征工程
这个结果并不是想要看到的,所以加上参数,得到想要的结果,在这里把这个处理数据的技巧用专业的称呼"one-hot"编码。
后端码匠
2021/09/02
8770
【机器学习】快速入门特征工程
使用sklearn做特征工程
目录 1 特征工程是什么? 2 数据预处理   2.1 无量纲化     2.1.1 标准化     2.1.2 区间缩放法     2.1.3 标准化与归一化的区别   2.2 对定量特征二值化   2.3 对定性特征哑编码   2.4 缺失值计算   2.5 数据变换   2.6 回顾 3 特征选择   3.1 Filter     3.1.1 方差选择法     3.1.2 相关系数法     3.1.3 卡方检验     3.1.4 互信息法   3.2 Wrapper     3.2.1 递归特征
机器学习AI算法工程
2018/03/14
2.3K0
使用sklearn做特征工程
人工智能_2_特征处理.py
# 特征处理 # 特征预处理:通过统计方法将数据转换为算法需要的数据 # 数值型数据:标准缩放 # 规依法,标准化(常用,适用于当前大数据),缺失值处理(删除,填补中位数平均数,通常按照列填补) # 类别型数据:ont-hot编码 # 时间类型:时间的切分 # 特征处理API sklearn.preprocessing # ============================================== # 归一化:对数据变化--->默认[0,1]之间 """ new = (
Dean0731
2020/05/08
3170
如何使用机器学习神器sklearn做特征工程?
本文中使用 sklearn 中的 IRIS(鸢尾花)数据集[1]来对特征处理功能进行说明。IRIS 数据集由 Fisher 在 1936 年整理,包含 4 个特征(Sepal.Length(花萼长度)、Sepal.Width(花萼宽度)、Petal.Length(花瓣长度)、Petal.Width(花瓣宽度)),特征值都为正浮点数,单位为厘米。目标值为鸢尾花的分类(Iris Setosa(山鸢尾)、Iris Versicolour(杂色鸢尾),Iris Virginica(维吉尼亚鸢尾))。导入 IRIS 数据集的代码如下:
爱编程的小明
2022/09/06
1.2K0
如何使用机器学习神器sklearn做特征工程?
机器学习 | 特征工程(数据预处理、特征抽取)
所谓特征工程即模型搭建之前进行的数据预处理和特征提取。有时人们常常好高骛远,数据都没处理好就开始折腾各种算法,从第一开始就有问题,那岂不是还没开始就已经结束了。所以说啊,不积跬步无以至千里,生活中的每个细节,都可能创造人生的辉煌。
week
2021/11/29
2.3K0
机器学习 | 特征工程(数据预处理、特征抽取)
机器学习:基于scikit-learn进行特征工程
今天给大家分享如何基于机器学习建模全能包scikit-learn进行特征工程feature-engineering。
皮大大
2024/07/22
2310
机器学习篇(二)
归一化的公式:x1 = (x-mix)/(max-min) x2 = x1*(mx-mi) + mi
不断折腾
2019/09/23
9670
数据科学和人工智能技术笔记 七、特征工程
主成分分析(PCA)是数据科学中常见的特征提取方法。 从技术上讲,PCA 找到具有最高特征值的协方差矩阵的特征向量,然后使用这些特征向量将数据投影到相等或更小维度的新子空间。 实际上,PCA 将 n 个特征矩阵转换为(可能)小于 n 个特征的新数据集。 也就是说,它通过构造新的较少变量来减少特征的数量,这些变量捕获原始特征中找到的信息的重要部分。 但是,本教程的目的不是要解释 PCA 的概念,这在其他地方做得非常好,而是用于演示 PCA 的实际应用。
ApacheCN_飞龙
2022/12/02
3770
数据科学和人工智能技术笔记 七、特征工程
特征工程完全总结
目录 1 特征工程是什么? 2 数据预处理   2.1 无量纲化     2.1.1 标准化     2.1.2 区间缩放法     2.1.3 标准化与归一化的区别   2.2 对定量特征二值化   2.3 对定性特征哑编码   2.4 缺失值计算   2.5 数据变换 3 特征选择   3.1 Filter     3.1.1 方差选择法     3.1.2 相关系数法     3.1.3 卡方检验     3.1.4 互信息法   3.2 Wrapper     3.2.1 递归特征消除法   3.3
用户1332428
2018/03/09
1.5K0
特征工程完全总结
用机器学习神器sklearn做特征工程!
有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。
郭好奇同学
2022/04/12
1.4K0
用机器学习神器sklearn做特征工程!
机器学习特征降维
特征对训练模型时非常重要的;用于训练的数据集包含一些不重要的特征,可能导致模型性能不好、泛化性能不佳;例如:
@小森
2024/05/13
1700
机器学习特征降维
独家 | 一文读懂特征工程
本文结构 1. 概述 机器学习被广泛定义为“利用经验来改善计算机系统的自身性能”。事实上,“经验”在计算机中主要是以数据的形式存在的,因此数据是机器学习的前提和基础。数据来源多种多样,它可以是结构数据,如数值型、分类型,也可以是非结构数据,如文本、语音、图片、视频。对于所有机器学习模型,这些原始数据必须以特征的形式加入到机器学习模型当中,并进行一定的提取和筛选工作。所谓特征提取,就是逐条将原始数据转化为特征向量的形式,此过程涉及数据特征的量化表示;而特征筛选是在已提取特征的基础上,进一步对高维度和
数据派THU
2018/01/29
1.1K0
独家 | 一文读懂特征工程
深度了解特征工程
Feature:An attribute useful for your modeling task. Feature Selection:From many features to a few that are useful Feature Extraction:The automatic construction of new features from raw data. Feature Construction:The manual construction of new features from raw data. Feature Importance:An estimate of the usefulness of a feature.
马上科普尚尚
2020/09/22
2.1K0
深度了解特征工程
【机器学习】特征工程:特征选择、数据降维、PCA
各位同学好,今天我和大家分享一下python机器学习中的特征选择和数据降维。内容有:
Twcat_tree
2023/11/20
4400
【机器学习】特征工程:特征选择、数据降维、PCA
特征工程全过程
  有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。通过总结和归纳,人们认为特征工程包括以下方面:
机器学习AI算法工程
2019/10/29
1.5K0
特征工程全过程
利用Python进行常见的特征工程
上期说到数据分析师一般对业务数据提取的时候就会进行数据清洗,也会做一些业务逻辑或者数据逻辑上的特征处理。但由于特征工程是数据建模重要的一环,所以这里就做一个简单的总结。希望能给大家带来一些小小地帮助~
HsuHeinrich
2023/03/29
1K0
利用Python进行常见的特征工程
【完结篇】专栏 | 基于 Jupyter 的特征工程手册:特征降维
经过数据预处理和特征选择,我们已经生成了一个很好的特征子集。但是有时该子集可能仍然包含过多特征,导致需要花费太多的计算能力用以训练模型。在这种情况下,我们可以使用降维技术进一步压缩特征子集。但这可能会降低模型性能。
红色石头
2022/01/16
3960
【完结篇】专栏 | 基于 Jupyter 的特征工程手册:特征降维
图解机器学习特征工程
上图为大家熟悉的机器学习建模流程图(扩展阅读:一文全览机器学习建模流程(Python代码)),整个建模流程非常重要的一步,是对于数据的预处理和特征工程,它很大程度决定了最后建模效果的好坏。
算法进阶
2023/09/01
1.3K0
图解机器学习特征工程
机器学习实战 | 机器学习特征工程最全解读
教程地址:http://www.showmeai.tech/tutorials/41
ShowMeAI
2022/03/22
2K0
机器学习实战 | 机器学习特征工程最全解读
【机器学习】特征工程、降维与超参数调优:提升机器学习模型表现的三大核心技术
文章链接:https://cloud.tencent.com/developer/article/2466288
小馒头学Python
2024/11/18
4160
【机器学习】特征工程、降维与超参数调优:提升机器学习模型表现的三大核心技术
相关推荐
【机器学习】快速入门特征工程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验