文章目录

  • 引言
  • 一、特征归一化
  • 二、类别型特征
  • 三、高维组合特征的处理
  • 四、组合特征
    • 1.怎么有效地找到组合特征?
  • 五、文本表示类型
    • 1.有哪些文本表示模型?
    • 2.模型有什么优缺点?
  • 六、Word2Vec
  • 七、图像数据不足的处理方法
    • 1.图像分类任务中,训练数据不足会带来什么问题?
    • 2.如何缓解数据量不足带来的问题?

插眼:

  • 百面机器学习—1.特征工程
  • 百面机器学习—2. 特征工程与模型评估要点总结
  • 百面机器学习—3.逻辑回归与决策树要点总结
  • 百面机器学习—4.SVM模型基础知识
  • 百面机器学习—5.SVM要点总结
  • 百面机器学习—6.PCA与LDA要点总结
  • 百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结
  • 百面机器学习—8.概率图模型之HMM模型
  • 百面机器学习—9.前馈神经网络面试问题总结
  • 百面机器学习—10.循环神经网络面试问题总结
  • 百面机器学习—11.集成学习(GBDT、XGBoost)面试问题总结
  • 百面机器学习—12.优化算法

引言

  参考:百面机器学习pdf:链接:https://pan.baidu.com/s/1QHWWEXxrOIOQgTycz3YX6Q
提取码:y01g

一、特征归一化

描述
  为了消除数据特征之间的量纲影响,我们需要对特征进行归一化,使得不同指标之间具有可比性,使得各指标处于同一数值量级,以便于分析。
方法:

  1. 线性函数归一化(Min-Max),将原始数据映射到[0,1]范围内

    from sklearn.preprocessing import MinMaxScaler
    
  2. 零均值归一化(标准化),将原始数据映射到mean=0,std=1的分布上

    from sklearn.preprocessing import StandardScaler
    

为什么需要对数值特征做归一化?
  以随机梯度下降为例,在学习率相同的情况下,经过归一化后的数据容易更快的通过梯度下降找到最优解。

  在实际运用中,通过梯度下降的算法求解的模型都需要归一化,包括线性回归、逻辑回归、支持向量机、神经网络等模型。但对决策树模型并不适用,因为信息增益、信息增益比、基尼指数跟特征是否经过归一化是无关的。

二、类别型特征

描述
  类别特征指在有限选项内取值的特征,通常为字符串形式。除决策树等少数模型可以直接处理字符串形式的输入,对于逻辑回归、支持向量机等模型都需要先将类别型特征直接转换成数值型特征。
在对数据进行预处理时,应该如何处理类别型特征?

  1. 序号编码
    通常处理类别间具有大小关系的数据,会按照大小关系给类别特征赋予一个数值ID

    from sklearn.preprocessing import OrdinalEncoder
    import numpy as nplabel = OrdinalEncoder()
    list = ['中国', '美国', '法国', '德国']
    list = np.array(list).reshape(-1,1)
    labels = label.fit_transform(list)
    print(labels)
    
    [[0.][3.][2.][1.]]
    

    如果数据本身并不存在大小关系,使用该编码会给这个特征增加不存在的顺序关系,增加了噪声

  2. 独热编码—onehot编码
    通常用于处理类别间不具有大小关系的特征。

    from sklearn.preprocessing import LabelEncoder,OneHotEncoder
    import numpy as nplabel = LabelEncoder()
    labels = label.fit_transform(['中国', '美国', '法国', '德国'])
    print(labels)labels = np.array(labels).reshape(len(labels), 1)  # 先将X组织成(sample,feature)的格式
    # list = ['中国', '美国', '法国', '德国']
    # list = np.array(list).reshape(-1,1)
    onehot = OneHotEncoder()
    onehot_label = onehot.fit_transform(labels)
    print(onehot_label.toarray())  # 这里一定要进行toarray(),转换成array格式
    
    [0 3 2 1]
    [[1. 0. 0. 0.][0. 0. 0. 1.][0. 0. 1. 0.][0. 1. 0. 0.]]
    

    对于类别取值较多(转换成onehot编码维度会很高)的情况下注意如下问题:
    1.使用稀疏向量来节省空间
    2.需配合特征选择来降低维度,一方面在逻辑回归模型中,维度的增加会导致参数的数量的增加,容易引起过拟合问题;另一方面,只有部分维度对于分类、预测是有效的。

  3. 二进制编码—Binary Encoding
    先用序号编码给每个类别赋予一个类别ID,然后将类别ID对应的二进制编码作为结果。二进制编码本质上是利用二进制对ID进行哈希映射,最终得到0/1特征向量,维度少于独热编码,节省了空间。

三、高维组合特征的处理

什么是组合特征?
  为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。
如何处理高维组合特征?

利用降维方法来减少两个高维特征组合后需要学习的参数


四、组合特征

  将多种高维特征,如果只是简单的两两组合,依然会存在参数过多、过拟合问题,而且并不是所有的特征组合都是有意义的。因此我们需要有效的方法找到应该对哪些特征进行组合。

1.怎么有效地找到组合特征?

  基于决策树的特征组合寻找方法,每一条从根节点到叶结点的路径可以看做是一种特征组合方式。

五、文本表示类型

  文本是非结构化数据

1.有哪些文本表示模型?

2.模型有什么优缺点?

词袋模型:

含义:将每篇文章看成一袋子词,并忽略每个词出现的顺序。(将文章按单词分开,每篇文章表示成一个长向量,向量中的每一维代表一个单词)

N-gram模型:将连续出现的n个词组成的词组作为一个单独的特征放到向量表示中去

主题模型:从文本库中发现有代表性的主题,并且计算出每篇文章的主体分布。

词嵌入:将词向量化,将每个词都映射到低维空间上的稠密向量

深度学习模型:深度学习模型的每一个隐层都可以认为对应着不同抽象层次的特征。

六、Word2Vec

这部分不做论述

七、图像数据不足的处理方法

  当训练一个图像分类模型时,如果训练样本比较少,该如何处理?

1.图像分类任务中,训练数据不足会带来什么问题?

  过拟合,模型泛化能力弱

2.如何缓解数据量不足带来的问题?

1.基于模型的方法,主要是采用降低过拟合风险的措施

包括简化模型、添加正则项、集成学习、Dropout超参数

2.基于数据的方法,主要是进行数据扩充。在保持特定信息的前提下,对原始数据进行适当变换以达到扩充数据集的效果。

3.上采样与生成对抗网络

4.迁移学习

百面机器学习—1.特征工程相关推荐

  1. 百面机器学习之特征工程

    1.为什么需要对数值类型的特征做归一化? 为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处理,使得不同指标之间具有可比性. 对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值 ...

  2. 【机器学习】特征工程概述

    特征工程 "数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已." 1.概念 维基百科:特征工程是利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的特征的过 ...

  3. 面向机器学习的特征工程翻译版

    前些日子推荐了一个仓库,是知名开源apachecn组织翻译的<面向机器学习的特征工程>英文版,可以说是特征工程的宝典,值得推荐. 仓库说明 知名开源apachecn组织翻译了<面向机 ...

  4. 面向机器学习的特征工程 六、降维:用 PCA 压缩数据集

    来源:ApacheCN<面向机器学习的特征工程>翻译项目 译者:@cn-Wziv 校对:@HeYun 通过自动数据收集和特征生成技术,可以快速获得大量特征,但并非所有这些都有用.在第 3 ...

  5. 面向机器学习的特征工程 三、文本数据: 展开、过滤和分块

    来源:ApacheCN<面向机器学习的特征工程>翻译项目 译者:@kkejili 校对:@HeYun 如果让你来设计一个算法来分析以下段落,你会怎么做? Emma knocked on t ...

  6. 面向机器学习的特征工程 一、引言

    来源:ApacheCN<面向机器学习的特征工程>翻译项目 译者:@ZhipengYe 校对:(虚位以待) 机器学习将数据拟合到数学模型中来获得结论或者做出预测.这些模型吸纳特征作为输入.特 ...

  7. 面向机器学习的特征工程 八、自动化特征提取器:图像特征提取和深度学习

    来源:ApacheCN<面向机器学习的特征工程>翻译项目 译者:friedhelm739 校对:(虚位以待) 视觉和声音是人类固有的感觉输入.我们的大脑是可以迅速进化我们的能力来处理视觉和 ...

  8. 面向机器学习的特征工程 七、非线性特征提取和模型堆叠

    七.非线性特征提取和模型堆叠 来源:ApacheCN<面向机器学习的特征工程>翻译项目 译者:friedhelm739 校对:(虚位以待) 当在数据一个线性子空间像扁平饼时 PCA 是非常 ...

  9. 机器学习之 特征工程

    之前相关文章目录: 机器学习 之线性回归 机器学习 之逻辑回归及python实现 机器学习项目实战 交易数据异常检测 机器学习之 决策树(Decision Tree) 机器学习之 决策树(Decisi ...

  10. 【AlgorithmStar机器学习】AS机器学习库特征工程使用说明文档

    目录 Algorithm Star介绍 概述 AS库的一般处理流程 数据采集与清洗 向量生成与特征提取选择 机器学习 后续处理 Algorithm Star使用 数据类型-操作数 浮点类型操作数 整数 ...

最新文章

  1. Chem. Sci. | 3D深度生成模型进行基于结构的从头药物设计
  2. 当前主要使用的python版本_如何获取当前使用的Python版本信息?(代码示例)
  3. Python中使用多重继承
  4. Python中文分词--jieba的基本使用
  5. 网络通信:单播、广播、组播
  6. Ubuntu16.04系统运行VINS-Mono(安装、环境配置)
  7. python符号运算_用Python做科学计算-SymPy符号运算
  8. gui 设计的简单计算器 java,编写Java GUI程序,实现一个简单计算器。要求如下: (1)......
  9. delphi 到出execl2010 文件损坏_如何修复Linux中损坏的软件包?
  10. 如何查找android emulator内核的精确版本
  11. SocketDataHandler ConcurrentAsyncQueue Server/Client
  12. Java Web项目漏洞修复(绿盟检测)
  13. abs包含在哪个头文件_C语言abs和labs函数详解和示例
  14. macd是什么意思,详析MACD是什么意思
  15. 如何判断手机是否支持ASTC格式的贴图
  16. acwing 848 有向图的拓扑序列 拓扑序列
  17. 通过调用rundll32.exe来打开一些系统特定文件
  18. Unity场景优化工具:Mesh Baker 基础教程(贴图篇)
  19. .Net大局观(2).NET Core 2.0 特性介绍和使用指南
  20. 高山仰止,景行行止,虽不能至,心向往之!软工大二狗的回顾与展望。

热门文章

  1. 【接口测试】axios测试接口
  2. 解除用户锁定、修改用户密码
  3. C语言学习——bsmap-2.74_main.cpp
  4. JAVA程序打包成exe文件详细图解
  5. C#使用GET、POST请求获取结果
  6. Zookeeper启动失败,报错 can not open chanel to 2
  7. ThinkPHP项目笔记之RBAC(权限)补充篇
  8. 参加2015年TOP100会议的零散笔记
  9. self = [super init]的解释
  10. 【转】如何学会独立思考?