当前位置: 首页 > 科技观察

前端也必须了解机器学习的其中一个

时间:2023-03-14 12:13:07 科技观察

背景:近几年机器学习的热度越来越高,前端领域也不断布局。从大的研究方向来看,有前端智能和端智能;从框架的角度来看,js版本的框架也有很多,比如TensorFlow.js、Ml.js、Brain.js等,虽然目前前端应用不多,但是把握趋势就是把握趋势未来。本文将通过两篇文章讲解机器学习的内容。这是第一篇,主要介绍一些基础知识和特征工程;后续一批版本主要使用机器学习中的监督学习算法和非监督学习算法。.1.基础1.1定义机器学习是从数据中自动分析和获取模型,并利用模型对未知数据进行预测。1.2算法分类机器学习的前提是数据。根据数据中是否存在目标,可以分为:监督学习算法和非监督学习算法。监督学习算法——输入数据由输入特征值和目标值组成。无监督学习算法——输入数据由输入特征值和目标值组成1.3如何选择合适的算法机器学习中的算法种类繁多,面对问题时如何选择合适的算法成为了一个不可避免的问题,以下是描述选择合适算法的两条黄金法则。1.确定使用机器学习算法的目的。将数据分成离散的组是唯一的要求——聚类算法不仅将数据分成离散的组,还需要估计数据与各组之间的相似度——密度估计算法的目标变量是离散的——分类算法目标变量是连续的-如果回归算法要预测目标变量的值-如果监督学习算法没有目标变量值-无监督学习2.需要分析或收集的数据是什么,理解即数据的特征值是离散的变量或连续变量的特征值是否存在缺失值,是什么原因导致缺失值,数据中是否存在异常值,某个特征出现的频率。..1.4整体流程,不管内容多复杂,经过前面的总结,是最准确的有一套方法论f或者像我们这样的新手使用。我来解释一下机器学习的大致过程。获取数据获取数据是机器学习的第一步,比如使用公共数据源、爬取数据源、从日志、业务数据中获取数据等。数据处理后,得到的数据不一定满足使用要求,因此需要进行数据清洗、数据填充、数据格式转换,以减少训练数据量,加快算法训练时间。特征工程特征工程是利用专业背景知识和技能对数据进行处理,使特征在机器学习算法中更好发挥作用的过程,直接影响机器学习的效果,主要包括特征提取、特征预处理和特征降维.算法训练将处理后的数据输入合适的算法进行训练。模型评估使用测试集来评估模型的性能。分类模型中常用的模型性能指标有很多,如错误率、准确率、召回率、F1指数、ROC等。该应用程序将机器学习算法转化为应用程序来执行实际任务,以验证该算法是否可以在实际工作中正常使用。2、特征工程界有一句话“数据决定了机器学习的上限,算法只有尽可能接近这个上限”。这里的数据是指经过特征工程处理后的数据。特征工程是利用专业背景知识和技能对数据进行处理,使特征在机器学习算法中更好发挥作用的过程。可见特征工程在机器学习中的重要作用。对于特征工程,主要分为三个步骤:特征提取、特征预处理和特征降维。注:特征工程是一门很深的学科,这里不再赘述。2.1特征提取特征提取是指将任意数据(如文本或图像)转化为可用于机器学习的数字特征。常用的主要有:字典特征提取、文本特征提取、图像特征提取。2.2特征预处理通过特征提取,可以获得未处理的特征。该特征存在以下问题:维度不同:特征可能存在维度,导致其特征的规格不同,容易影响(支配)目标结果,使得某些算法无法学习其他特征,需要无量纲化。信息冗余:对于一些量化特征,其包含的有效信息是区间划分,需要进行二值化处理。定性特征不能直接使用:一些机器学习算法和模型只接受定量特征的输入,需要将定性特征转化为定量特征,可以通过哑编码实现。2.2.1DimensionlessDimensionalization将不同规格的数据转换为相同的规则。常用方法包括归一化和标准化1.归一化定义了对原始数据进行线性变换,使结果映射到[0,1]之间。计算公式特点最大值和最小值容易受异常点影响,稳定性差。2.标准化定义原始数据在均值为0,标准差为1的范围内的变换。计算公式特征较少的异常点对结果影响较小,稳定性较好。2.2.2量化特征二值化量化特征可以二值化。通过选择一个合适的阈值,大于某个阈值的值为1,小于某个阈值的值为0。2.2.3定性特征虚拟编码大多数算法对于不能用于训练模型的定性特征,一个-hot可用于将定性特征处理为定量特征,用于模型训练。基本思想是将离散特征的每个值都视为一个状态,如果特征有N个值,则有N个状态。比如女生的头发按照辫子的根数可以分为:不扎辫子、一根辫子、两根辫子、多根辫子。那么这个特征有4个状态,可以用dummycoding表示为:nobraid===="[1,0,0,0]onebraid===="[0,1,0,0]twobraid====《[0,0,1,0]多个辫子====》[0,0,0,1]2.3特征降维在机器学习中,处理高维数据会极大地消耗系统资源,并且甚至造成维数灾难。在一定的限制条件下,可以通过降维来减少随机变量的个数,用一个低维向量来表示原来的高维特征。常用的降维方法有:特征选择,PCA,LDA等2.3.1特征选择数据预处理完成后,需要选择有意义的特征进行训练,特征选择从以下两个方面考虑:特征是否发散:如果一个特征不发散(对于例如,方差接近于0),则认为没有差异特征。特征与目标的相关性:优先选择与目标相关性高的特征。常用的特征选择方法有:Filter(过滤法)、Wrapper(封装法)、Embedded(集成法)。2.3.1.1Filter(过滤方法)先进行特征选择,再对learner进行训练。特征选择的过程与学习者无关。主要思想是给每个维度的特征分配权重,权重代表特征的重要程度,然后设置阈值或者选择阈值的个数来选择特征。常用的方法有方差选择法(低方差特征过滤)、相关系数法等。1.低方差特征过滤方差是指各变量值与其均值之间偏差的平方的平均值。它是衡量数值数据分散程度的重要方法。方差越大,代表数据的分散程度越大,反之亦然。对于数据中的特征值,方差小意味着特征的大部分样本具有相似的值;大方差意味着该特征的许多样本具有不同的值。低方差特征过滤就是基于这种思想,通过设置一个方差阈值来去除小于该阈值的特征。方差计算公式如下:2.相关系数法皮尔逊相关系数(r)定义为两个变量之间的协方差与标准差的商,是反映变量之间相关性密切程度的统计指标,其取值r的取值范围是[-1,1],意思是:当r>0时,表示两个变量正相关。当r<0时,两个变量呈负相关。当|r|=1时,表示两个变量完全相关。当r=0时,说明两个变量之间不存在相关性。当0<|r|<1时,说明两个变量之间存在一定程度的相关性。而且越近|r|为1,表示两个变量之间的线性关系越近;越近|r|为0,两个变量之间的线性相关性越弱2.3.1.2Wrapper(包装方法)使用分类器作为特征选择评估函数为特定分类器选择最优的特征子集。其主要思想是将子集的选择看作一个搜索优化问题,生成不同的组合,对组合进行评价,并与其他组合进行比较。常用的方法包括递归特征消除。递归特征剔除的主要思想是反复建立模型(如SVM或回归模型)然后选择最好(或最差)的特征(可以根据系数选择),选择被选择的特征,然后in对剩余的特征重复这个过程,直到遍历完所有特征。这个过程中特征被淘汰的顺序就是特征的顺序。因此,寻找最优特征子集是一种贪心算法。2.3.1.3Embedded(集成法)将特征选择嵌入到模型训练中。其主要思想是利用一些机器学习算法和模型进行训练,得到每个特征的权重系数,按照系数从大到小来选择特征。常用的方法有:基于惩罚项(L1,L2)的特征选择法,决策树的特征选择法(信息熵,信息增益)。注意:该方法与算法强相关,所以会在算法实现时进行说明。2.3.2PCA(主成分分析,PCA)是一种分析和简化数据集的技术。主成分分析常用于对数据集进行降维,同时保持数据集中对方差贡献最大的特征(旨在找到数据中的主成分,并用这些主成分来表示原始数据,从而达到降维的目的)。这是通过保留低阶主成分并忽略高阶主成分来完成的。一、优缺点1、优点:降低了数据的复杂度,只需要用方差来衡量信息量就可以识别出最重要的特征。它不受数据集以外的因素影响。主成分之间的正交性可以消除原始数据成分之间的差距。相互影响因素的计算方法简单,主要计算公式的特征值分解容易实现。2.缺点:可能丢失有用信息(因为没有考虑数据标签,容易把不同类别的数据混在一起,很难区分)2适用数据类型——数值型数据2.3.3LDA(LinearDiscriminant)分析)LDA是一种用于监督学习的降维技术,其数据集的每个样本都有一个类别输出。这与PCA不同,PCA是一种无监督的降维技术,不考虑样本类别输出。LDA的思想是“最大化类间距离,最小化类内距离”(将数据进行低维投影,希望投影后每一类数据的投影点尽可能靠近,以及不同类别数据的类别中心之间的距离尽可能大)1.优点:在降维的过程中,可以利用类别的先验知识。当样本分类信息取决于均值而不是方差时,LDA优于PCA等算法。2.缺点:LDA不适用于非高斯分布(非正态分布)样本的降维。降维后,LDA可以降为[1,2,...,k-1]维,其中k为类别数。LDA在样本分类信息中依赖方差而不是均值时,降维效果不好。LDA可能会过度拟合数据。参考资料特征工程LDA和PCA到底是什么降维机器学习练习二维码注意力。转载本文请联系风筝持有人公众号。