背景:
近年来机器学习的热度不断升高,前端领域也在不断布局,从大的研究方向来看,有前端智能化、端智能;从框架这个角度来看,也有很多js版的框架,例如TensorFlow.js、Ml.js、Brain.js等。虽然当前来看其在前端落地的应用还不是很多,但是把握趋势就是把握未来。本文将通过上下两篇来对机器学习的内容进行阐述,这是第一篇,主要介绍一些基础知识和特征工程;后续推出的一批主要利用阐述机器学习中的监督学习算法和非监督学习算法。
一、基础
1.1 定义
机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。
1.2 算法分类
机器学习的前提是数据,根据数据中是否有目标可以划分为:监督学习算法和无监督学习算法。
1.3 如何选择合适算法
机器学习有这么多算法,面对一个问题时应该如何选择合适的算法成为了不可避免的问题,下面就来叙述两条选择合适算法的黄金法则。
1.确定使用机器学习算法的目的。
2.需要分析或收集的数据是什么,了解其数据特征
1.4 整体流程
不管多么复杂的内容经过前人的总结最会有一套方法论供我们这样的小白使用,下面就来阐述一下机器学习通用的流程。
获取数据
获取数据是机器学习的第一步,例如使用公开的数据源、爬虫获取数据源、日志中获取数据、商业数据等。
数据处理
得到数据后并不一定符合使用需求,所以需要进行数据清洗、数据填充、数据格式转换,达到减小训练的数据量,加快算法的训练时间的目的。
特征工程
特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程,直接影响机器学习的效果,主要包含特征提取、特征预处理、特征降维。
算法训练
将处理之后的数据输入到合适的算法进行训练。
模型评估
使用测试集来评估模型的性能.模型性能指标有很多,比如在分类模型中常用的有错误率,精准率,召回率,F1指标,ROC等。
应用
将机器学习算法转换为应用程序执行实际任务,从而检验该算法是否可以在实际工作中正常使用。
二、特征工程
业界流传着一句话 “数据决定了机器学习的上限,而算法只是尽可能逼近这个上限”,这里的数据指的就是经过特征工程处理后的数据。特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程,可见特征工程在机器学习中的重要地位。对于特征工程主要分为三步:特征抽取、特征预处理、特征降维。
注:特征工程是一个很深的学科,此处不展开阐述。
2.1 特征提取
特征提取指的就是将任意数据(如文本或图像)转换为可用于机器学习的数字特征,常用的主要包含:字典特征提取、文本特征提取、图像特征提取。
2.2 特征预处理
通过特征提取,能得到未经处理的特征,该特征具有以下问题:
量纲不同:特征可能具有量纲,导致其特征的规格不一样,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征,需要进行无量纲化处理。
信息冗余:对于某些定量特征,其包含的有效信息为区间划分,需要进行二值化处理。
定性特征不能直接使用:某些机器学习算法和模型只接受定量特征的输入,则需要将定性特征转换为定量特征,可通过哑编码实现。
2.2.1 无量纲化
无量纲化使不同规格的数据转换到同一规则,常用方法有归一化和标准化
1.归一化
对原始数据进行线性变换,使得结果映射到[0,1]之间。
最大最小值容易受到异常点影响,稳定性较差。
2.标准化
将原始数据进行变换到均值为0、标准差为1的范围内
较少的异常点对结果影响不大,稳定性较好。
2.2.2 定量特征二值化
对于定量特征可进行二值化,通过选取一个合适的阈值,大于某阈值的为1,小余等于某阈值的为0。
2.2.3 定性特征哑编码
大部分算法对于定性特征无法训练模型,利用哑编码(one-hot)可以将定性特征处理为定量特征用于模型训练,其基本思想是:将离散特征的每一种值看成一种状态,若该特征有N个值,则存在N种状态,例如女孩子的头发按照辫子的多少可以划分为:无辫子、一个辫子、两个辫子、多个辫子,则该特征有4种状态,利用哑编码可以表示为:
2.3 特征降维
在机器学习中对维度较高的数据进行处理时会极大消耗系统资源,甚至产生维度灾难。在某些限定条件下,通过降维的方式可降低随机变量的个数,用一个低维度向量来表示原始高维度的特征。常用的降维的方式有:特征选择、PCA、LDA等。
2.3.1 特征选择
数据预处理完毕之后需要选择有意义的特征进行训练,特征选择从以下两方面考虑:
特征是否发散:若某特征不发散(例如方差接近为0),则认为该特征无差异。
特征与目标的相关性:优先选择与目标相关性较高的特征。
常用的特征选择方式有:Filter(过滤法)、Wrapper(包装法)、Embedded(集成法)。
2.3.1.1 Filter(过滤法)
先进行特征选择,然后去训练学习器,其特征选择的过程与学习器无关。其主要思想是给每一维的特征赋予权重,权重代表该特征的重要性,然后设定阈值或者待选择阈值的个数选择特征。常用方法有方差选择法(低方差特征过滤)、相关系数法等。
一、低方差特征过滤
方差指的是各变量值与其均值离差平方的平均数,是测算数值型数据离散程度的重要方法,方差越大则表征数据的离散程度越大,反之越小。对于数据中的特征值,方差小则表示特征大多样本的值比较相近;方差大则表示特征很多样本的值都有差别。低方差特征过滤正是基于该思想,通过设定方差阈值来去掉小于该阈值的特征。方差计算公式如下:
二、相关系数法
皮尔逊相关系数(r)定义为两个变量之间的协方差和标准差的商,是反映变量之间相关关系密切程度的统计指标,其值r范围为[-1, 1],含义为:
2.3.1.2 Wrapper(包装法)
把要使用的分类器作为特征选择的评价函数,对于特定的分类器选择最优的特征子集。其主要思想是将子集的选择看作是一个搜索寻优问题,生成不同的组合,对组合进行评价,再与其它的组合进行比较。常用方法有递归特征消除法。
2.3.1.3 Embedded(集成法)
将特征选择嵌入到模型训练当中。其主要思想是通过使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。常用方法有:基于惩罚项的特征选择法(L1、L2)、决策树的特征选择法(信息熵、信息增益)。
注:该方法与算法强相关,所以在算法实现的时候进行阐述。
2.3.2 PCA(主成分分析法)
主成分分析(Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征(旨在找到数据中的主成分,并利用这些主成分表征原始数据,从而达到降维的目的)。这是通过保留低阶主成分,忽略高阶主成分做到的。
一、 优缺点
1.优点:
2.缺点:
可能损失有用信息(由于没有考虑数据标签,容易将不同类别数据完全混合在一起,很难区分)
2.3.3 LDA(线性判别分析法)
LDA是一种监督学习的降维技术,它的数据集的每个样本是有类别输出的。PCA与此不同,PCA是不考虑样本类别输出的无监督降维技术。LDA的思想是“最大化类间距离和最小化类内距离”(将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大)
1.优点:
2.缺点:
参考文献
本文转载自微信公众号「执鸢者」,可以通过以下二维码关注。转载本文请联系执鸢者公众号。
为了让用户更安心过年, 继去年支付宝上线疫情直通车专项服务,近日,支付宝和阿...
在文章开始之前,小编想问问大家,您现在选择手机的时候会不会把屏幕刷新率考虑...
本文转载自网络,原文链接:https://www.toutiao.com/a6940261904237642247/...
2 月 20 日,谷歌 Ethical AI(AI 伦理)团队的创始人 Mitchell 在推特上发了一...
UX设计流程中,需求分析是绝大多数流程的开端。所以今天,我们先从产品分析作为...
2021年3月3日,GGV Family扩博智能宣布已完成Pre-B-4轮融资,资金总额达到两亿元...
人工智能(AI)已经踏入了诺贝尔奖领域。最近诞生了一项让人产生这种感觉的研究...
本文转载自微信公众号「Throwable」,作者Throwable。转载本文请联系Throwable公...
EkkoSense的一项新研究表明,如果数据中心运营商和提供商努力将其数据中心的制冷...
作为一个宇宙级中心,微信一直是各种链接的主要分享渠道,其中不少为了引流可谓...