机器学习模型-基于python

1 机器学习简介

1.1 机器学习 vs 数据挖掘

  1. 机器学习:属于人工智能研究与应用的一个分支领域,其目的更偏向于是研究一种为了让计算机不断从数据中学习知识,而使机器学习得到的结果不断接近目标函数的理论。机器学习是多领域交叉,涉及概率论、统计学,算法复杂度理论等多门学科,广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、垃圾邮件过滤、推荐系统、知识图谱、医学诊断、检测信用卡欺诈、语音和手写识别、战略游戏和机器人运用等。

【注】机器学习sklearn库的共分为6大部分,分别用于完成分类、回归、聚类、降维、模型选择(sklearn.model_selection)以及数据的预处理(sklearn.preprocessing)。
在这里插入图片描述

  1. 数据挖掘:一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。机器学习为数据挖掘提供了理论方法,而数据挖掘技术是机器学习技术的一个实际应用。“数据挖掘十大算法”包括:K均值(K-mean)、最大期望(EM)、关联分析(Apriori)、决策树(C4.5)、支持向量机(SVM)、集成(AdaBoost)、k近邻(kNN)、朴素贝叶斯(NB)和分类回归树(CART)、网页连接(PageRank)。

1.2 数据集切割 / 数据分区

  1. 训练数据集:用于构建模型,进行模型参数的估计和训练。通常抽取数据的中的 80%,可以在训练数据上做任何的分析。
  2. 验证数据集:用于对模型的结果进行验证和评估,依此进行模型优化修正和选择,调整过拟合现象和比较预测模型。常用进行交叉验证方法(如10折交叉验证),不做交叉验证时也可不划分验证集,而直接使用测试集来评估模型。
  3. 测试数据集:对最终选定的模型进行最终评估,测试模型的推广能力。
    **如何划分训练集和测试集?**留出法(Hold-out)(数据集互斥)、交叉验证法(Cross Validation)、 自助法(BootStrapping)。

2 监督学习_分类

2.1 k近邻(KNN)

假设给定一个训练数据集的实例类别已定,分类时,将新数据的每个特征与训练样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。

2.2 决策树(DT)

在分类问题中,表示基于特征对实例进行分类的过程,是 if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。(python实现:tree.DecisionTreeClassifier().fit().predict() )。

2.3 朴素贝叶斯(NB)

贝叶斯概率引入先验知识和逻辑推理来处理不确定命题,选择具有最高概率的决策,分类准则:如果P(c1|x, y) > P(c2|x, y),那么属于类别c1,反之属于类别c2。重要应用:文档自动分类。

2.4 Logistic回归(LR)

根据现有数据对分类边界线建立回归公式,以此进行分类,其目的是寻找一个非线性函数Sigmoid的最佳拟合参数,求解过程可以由最优化算法(如:梯度上升算法)来完成。

2.5 支持向量机(SVM)

目的是最大化支持向量到分隔面的距离,需要找到此问题的优化求解方法(如:序列最小化SMO、原始估计梯度求解器Pegasos、核函数-径向基函数RBF)。

2.6 集成学习(EL)

  1. bagging是基于数据随机重抽样的分类器构建方法,是一种投票选举方法,每个新分类器都根据已训练出的分类器的性能来进行训练,如随机森林。
  2. boosting通过集中关注被已有分类器错分的那些数据来获得新的分类器,不断地重复训练和调整权重的过程,如AdaBoost。

2.7 概率图模型(PGM)

用图形模式表达基于概率相关关系的模型的总称,大致分为两个类别:贝叶斯网络(有向无环图-因果关系)和马尔可夫随机场(无向图-相互作用),主要区别在于采用不同类型的图来表达变量之间的关系。

2.8 神经网络(ANN)

是由具有适应性的简单单元组成的广泛并行互联的神经网络,有以下集中模型(输入层:神经元输入信号;隐藏层:权重连接传递w-总输入值和阈值o比较,激活函数处理;输出层:神经元输出):

  1. M-P模型
  2. 感知机
  3. 前馈神经网络FNN
  4. 误差逆传播算法BP:输出层的误差逆向传播至隐层神经元,根据误差来对连接权和阈值进行调整
  5. 径向基函数网络RBF:用RBF作为隐单元的“基”构成隐含层空间,隐含层作用是把向量从低维度的p映射到高维度的h使得线性可分
  6. 自组织映射网络SOM
  7. 玻尔兹曼机Boltzmann
  8. 卷积神经网络CNN

3 监督学习_回归

3.1 简单线性回归(LR)

对于给定的数据X,简单线性回归的预测结果将会通过Y=XTw给出,采用平方误差最小化求解w。简单线性回归的有可能出现欠拟合现象,因为它求的是具有最小均方误差的无偏估计。(python实现:LinearRegression().fit().predict())

3.2 局部加权线性回归(LWLR)

允许在估计中引入偏差,从而降低预测的均方误差,我们给待预测点附近的每个点赋予一定的权重,在这个子集上基于最小均方差来进行普通的回归,与kNN一样。

3.3 缩减回归(shrinkage)

如果特征比样本点还多(n>m),非满秩矩阵在求逆时会出现问题。缩减法通过引入惩罚项参数减少不重要的参数,当应用缩减方法时,模型增加了偏差(bias),却减小了方差。常见方法如岭回归、lasso法和前向逐步回归。

3.4 分类回归树(CART)

数据集中经常包含一些复杂的相互关系,或输入数据和目标变量之间呈现非线性关系,解决方法是将数据集切分再建模,一般采用树结构来对预测值分段建模。若叶节点使用的模型是分段常数则称为回归树,若叶节点使用的模型是线性回归方程则称为模型树。

4 无监督学习_聚类

4.1 原型聚类-K均值(K-means)

聚类试图将相似对象归入同一簇,将不相似对象归到不同簇(相似度度量如:欧式距离、曼哈顿距离和余弦相似性距离)。原型聚类指聚类的结构能通过一组原型刻画,原型是指样本空间中具有代表性的点,通常认为是簇的中心,对于具有连续属性的数据,簇的原型通常是质心,即簇中所有点的平均值。K-均值算法的工作流程(python实现:KMeans(n_clusters=, random_state=).fit().predict()):

  1. 随机确定k个初始点作为质心;
  2. 将数据集中的每个点找距其最近的质心,并将其分配给该质心所对应的簇;
  3. 每个簇的质心更新为该簇所有点的平均值;
  4. 迭代直至没有对象被重新分配给不同的聚类。

4.2 高斯混合聚类(GMM)

在高斯混合聚类的过程中,给出这些数据点被分配到每个簇的概率,最终聚类结果是依据数据点的所属类别的最大后验概率决定(p(i|xj)样本xj属于第i个簇的概率)。

4.3 层次聚类(AGNES、DIANA)

用层次结构的形式表示数据对象可容易地对组织在层次结构中的数据进行汇总或特征化,层次聚类分为聚合(AGNES)和分拆(DIANA)的层次聚类。

4.4 密度聚类(DBSCAN)

从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果:

  1. 以某一样本点为核心对象,在以光标为半径的邻域内,有其他样本点称为核心对象的连接样本;
  2. 再考察每一个连接样本是否符合核心对象的条件。如果符合条件,再以这个连接样本为核心对象,在它的邻域内找寻新的连接样本;
  3. 不断扩展,直至终止,获得最终的聚类结果。

4.5 学习向量量化(LVQ)

在每个簇中,找到一个原型代表这个簇的其他样本点,同时这个簇有边界。

5 无监督学习_关联分析

5.1 Apriori算法

(from mlxtend.frequent_patterns import apriori, association_rules):

  1. 选出满足支持度最小阈值的所有项集,即频繁项集;(apriori(min_support=) )
  2. 从频繁项集中找出满足最小置信度的所有规则。(association_rules(metric=‘confidence’/‘support’/‘lift’,min_threshold=))

5.2 FP-growth算法

和Apriori算法相比,该算法只需要对数据库进行两次遍历,能够显著加快发现繁项集的速度。基本过程:

  1. 构建FP树;
  2. 从FP树中挖掘频繁项集:
    ① 从FP树中获得条件模式基;
    ② 利用条件模式基,构建一个条件FP树;
    ③ 迭代重复步骤(1)步骤(2),直到树包含一个元素项为止。

6 无监督学习_流行学习/ 降维

流形(Manifold):是局部具有欧氏空间性质的空间,即它的局部距离可以用欧式距离来进行距离计算。直观上来讲,一个低维流形嵌入到高维空间中被扭曲之后的结果。流形并不是一个“形状”,而是一个“空间”。

流形学习就是从高维采样数据中恢复低维流形结构,即找到高维空间中的低维流形,并求出相应的嵌入映射,以实现维数约简或者数据可视化。它是从观测到的现象中去寻找事物的本质,找到产生数据的内在规律。流形学习方法是模式识别中的基本方法,分为线性流形学习算法和非线性流形学习算法:

6.1 非线性流形学习

  1. 等距映射(Isomap)
  2. 拉普拉斯特征映射(Laplacian eigenmaps,LE)
  3. 局部线性嵌入(Locally-linear embedding,LLE) 等。

6.2 线性流形学习

  1. 主成分分析(Principal component analysis,PCA)
  2. 因子分析(Factor Analysis,FA)
  3. 独立成分分析(Independent Component Analysis,ICA)
  4. 多维尺度变换(Multidimensional scaling,MDS)
  5. 奇异值分解(Singular Value Decomposition,SVD)等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值