首页 > 编程语言 >机器学习算法系列——博客中相关机器学习算法的目录

机器学习算法系列——博客中相关机器学习算法的目录

时间:2023-06-28 15:38:25浏览次数:43  
标签:机器 回归 神经网络 学习 算法 聚类 线性


前言

    这部分不是要介绍哪个具体的机器学习算法,前面做了一些机器学习的算法,本人在学习的过程中也去看别人写的材料,但是很多作者写的太难懂,或者就是放了太多的公式,所以我就想我来写点这方面的材料可以给大家参照,当然,由于本人才疏学浅,在写博客或者在写程序的过程中有什么不合理或者说错误的地方,还劳烦各位多多指出,因为有你们的支持才能体现出我做这些工作的价值。

    由于博客会越来越多,在这里我想对上面做的机器学习相关的博客做个目录,方便各位查看,这个目录也会一直更新。

一、引言


    李航老师指出,机器学习=模型+策略+算法。这里的模型在监督学习中就是指所要学习的条件概率或者决策函数;策略指的是如何定义损失函数或者风险函数。算法主要指的是如何去优化损失函数。所以在学习机器学习的过程中,有必要去了解一下优化函数。


二、优化算法


    优化函数有很多种,凸优化本身也是一门学问,在我已经做的工作中有如下一些优化方法:


1、梯度下降法


梯度下降法是机器学习中使用最为广泛的一种优化算法。


2、人工蜂群算法(ABC)


  以下的算法都属于智能优化算法,不但能够解决凸优化问题,更能够解决一些存在局部极值的问题,具有更加广泛的应用。


3、粒子群算法(PSO)


与ABC一样,都属于群智能优化算法。我的还有一些工作还没有写出来,我还做了差分进化算法DE和遗传算法GA,这个工作会在近期放到博客上。


三、分类算法 

    分类算法是一个大类,主要是一些常见的算法的常见用法,主要有以下一些:

1、k-近邻算法

k-近邻算法是一种简单的算法,基本的算法思想是通过相似性的比较,最终得到最相似的k类中最为相似的,在k-近邻算法中有几个很重要的地方:第一是k的取值,当然在我的博客中也没指出具体怎么取,其实k的取值就是模型的选择,模型的选择可以采用交叉验证的方式或者通过正则化的方式,显然这里是采用交叉验证的方式。第二点就是相似性的度量,有很多文章在写相似性的文章,但是具体各种相似性的度量方法应用在具体什么问题中,我也还在摸索,希望能给大家写一篇详细点的出来,也欢迎各位看到好的材料推荐给我。

2、决策树之ID3算法

在ID3算法中主要使用的是信息熵的概念,熵表示的是数据的混乱程度,我们分类的目标是使得最终的每个类中的数据属于同一个类,即数据不再混乱,所以每次选择一个特征,这个特征使得分类后的熵下降最快,所以就引入了信息增益的概念。

3、朴素贝叶斯

朴素贝叶斯是对特征做最基本的假设,即每个特征都是独立的且都是同等重要。朴素贝叶斯比较适合处理文本相关的分类问题,一直以来都还没把实验补上。。。

4、Logistic回归

Logistic回归主要是通过系数来选择特征,对不同的特征赋予不同的权重,最终对数据分类。

5、Rosenblatt感知机

    地址1,基本解法,地址2,对偶解法。Rosenblatt感知机是神经网络的基础,主要是通过查找误分类点来计算神经网络的权重和偏置,以使得所有的数据都能正确被分类,这里就说明了Rosenblatt感知机只能处理线性可分的问题。

6、神经网络之BP神经网络

    BP算法可以说是神经网络中最为基本的一种算法,也是最重要的一种算法,因为其他的一些神经网络类的算法都是在此基础上。BP神经网络主要是一种单隐层前馈神经网络,在BP算法中通过信息的前向传播,得到误差,再通过误差的反向传播去调整神经网络的权重和偏置。这里将梯度下降法运用到了极致。很基础的算法,也是相当重要的一种算法,思想尤为重要。

7、极限学习机(ELM)

 极限学习机是由黄广斌老师提出的一种神经网络系的算法,为什么把它放到这些基本的机器学习算法中,我个人觉得黄老师在设计ELM算法时,有些基本的思想是很重要的,ELM的模型和BP神经网络是一样的,都是单隐层前馈神经网络,只是ELM不是迭代的算法,通过信息的前向传播便能构造一个线性方程组,然后通过广义逆的方式求解线性方程组,这样大大节省了训练的时间。

8、支持向量机(SVM)

SVM在机器学习算法中的地位是很高的,SVM有着很强的数学基础,主要分为线性可分支持向量机,线性支持向量机(和非线性支持向量机。对于支持向量机的算法实现,主要是序列最小优化算法,这部分还没有完成,希望下次能够用Java语言去完整实现一个SVM。

四、回归算法

    回归算法主要处理连续型的问题,主要的算法有如下的一些:

1、基本的线性回归与局部加权线性回归

   在这个方面主要实现了基本的线性回归和局部加权线性回归。主要通过正规方程组的方式求解权重。在线性回归中最容易出现过拟合和欠拟合的问题,所以引入局部加权线性回归,通过权重调节每个特征的重要程度。

2、基本线性回归的另类实现

在这里可以使用广义逆求解其权重,这也是在ELM中学到的一点。

3、岭回归

 岭回归主要还是在处理过拟合的问题,我们需要找到方差和偏差折中的算法,岭回归主要是通过正则项去做模型的选择。

五、聚类算法

    聚类算法主要还是一种无监督的学习算法,通过不同的方式使具有相同结构的数据聚集在一起,聚类算法远不止我列出来的这些,还有很多,我也会在以后继续添加更多的聚类算法,我实现的主要有以下的一些聚类方法:

1、K均值(K-Means)

K-Means首先随机初始化k个聚类中心,通过迭代的方式不断调整聚类中心,知道k个聚类中心不再改变为之。在K-Means算法中,和K-近邻算法一样,这里的K的取值和相似性的度量都是很重要的。

2、基于密度的聚类算法DBSCAN

K-Mean算法除了上述的问题之外,还存在着他的聚类结果是球状的簇,而基于密度的算法可以使任意的形状,其次,在DBSCAN算法中没有k的取值问题,取而代之的是将每一个点分为核心点,边界点和噪音点。

六、推荐算法

    推荐算法最早是基于协同过滤的方法,当然后来又有很多,比如基于内容的推荐,这里我还是主要实现的是基于协同过滤的推荐算法:

1、协同过滤的推荐算法

    基本的算法地址,在基本的协同过滤算法中又分为基于项的推荐系统和基于用户的推荐系统,协同过滤的推荐系统主要是计算不同用户或者不同项之间的相似性,然后对需要推荐的选项打分,最终推荐分数较高的选项。相似度计算是一件很花费时间的事或者这样的矩阵是一个稀疏矩阵,没法实现相似度的计算,所以可以先对这样的矩阵降维,并映射到主题空间中,再去计算此时的相似度

七、降维的方法

    原始数据的处理一直以来都是很重要的,原来我也是一直忽视这一块,找工作的过程中,我意识到算法是一些既定的框架,在具体的问题中特征的提取,以及一些原始数据的处理方式方法对这个机器学习问题才是最关键的,原来我在这块也有忽视,做的比较少,以后会重点做好这块的工作,以下是以下我实现的一些降维的方法:

1、主成分分析(PCA)

PCA是一种较为常用的降维技术,PCA的思想是将维特征映射到维上,这维是全新的正交特征。这维特征称为主元,是重新构造出来的维特征。

2、奇异值分解(SVD)

SVD的思想与特征值、特征向量的概念类似,提取出重要的向量,便称为左奇异向量和右奇异向量。


以上是我花了一点时间把我做的机器学习相关算法做的一个目录,方便大家查阅,有什么疏漏或者错误的地方还希望大家提出来,有好的资料大家也可以互相分享,我做的工作还很粗浅,也比较少,希望在以后的日子里和大家一起进步,一起努力,谢谢各位。



标签:机器,回归,神经网络,学习,算法,聚类,线性
From: https://blog.51cto.com/u_16161414/6572312

相关文章

  • 简单易学的机器学习算法——谱聚类(Spectal Clustering)
    上述的“截”函数通常会将图分割成一个点和其余个点。4、其他的“截”函数的表现形式性质3的证明:4、不同的Laplacian矩阵  除了上述的拉普拉斯矩阵,还有规范化的Laplacian矩阵形式:四、Laplacian矩阵与谱聚类中的优化函数的关系1、由Laplacian矩阵到“截”函数......
  • 优化算法——拟牛顿法之DFP算法
    4、求解具体的优化问题  求解无约束优化问题function.py#coding:UTF-8'''Createdon2015年5月19日@author:zhaozhiyong'''fromnumpyimport*#fundeffun(x):return100*(x[0,0]**2-x[1,0])**2+(x[0,0]-1)**2......
  • 优化算法——拟牛顿法之BFGS算法
    一、BFGS算法简介  BFGS算法是使用较多的一种拟牛顿方法,是由Broyden,Fletcher,Goldfarb,Shanno四个人分别提出的,故称为BFGS校正。  同DFP校正的推导公式一样,DFP校正见博文“优化算法——拟牛顿法之DFP算法”。对于拟牛顿方程:。function.py#codin......
  • 优化算法——拟牛顿法之L-BFGS算法
    四、L-BFGS算法中的方向的计算方法五、实验仿真lbfgs.py#coding:UTF-8fromnumpyimport*fromfunctionimport*deflbfgs(fun,gfun,x0):result=[]#保留最终的结果maxk=500#最大的迭代次数rho=0.55sigma=0.4H0=eye(shape(x0)[0])......
  • 简单易学的机器学习算法——EM算法
    (图片来自参考文章1)Python代码#coding:UTF-8'''Createdon2015年6月7日@author:zhaozhiyong'''from__future__importdivisionfromnumpyimport*importmathasmt#首先生成一些用于测试的样本#指定两个高斯分布的参数,这两个高斯分布的方差相同sigma=6miu_......
  • 简单易学的机器学习算法——AdaBoost
    是符号函数。具体过程可见下图所示:(图片来自参考文件1)三、AdaBoost算法流程  上述为AdaBoost的基本原理,下面给出AdaBoost算法的流程:(来自参考文献2)四、实际的例子  AdaBoost算法是一种具有很高精度的分类器,其实AdaBoost算法提供的是一种框架,在这种框架......
  • 优化算法——截断梯度法(TG)
    一、L1正则的表达形式  在机器学习中,几乎无人不知无人不晓L1正则与L2正则,L1正则与L2正则都有参数控制的作用,对模型起到约束的作用,防止过拟合。但是L1正则与L2正则也有区别,L1正则更容易产生稀疏解,使得某些参数等于0,而L2正则却没有这样的优势,只能使得参数趋近于0。利用这样的优势......
  • [CS224W] 图机器学习 节点级特征
    节点度数(Nodedegree)结点\(v\)的度数\(k_v\)是\(v\)所邻接到的节点数量。平等对待所有邻居节点,没有考虑节点的重要性。节点中心性(Nodecentrality)考虑了节点的重要性。1.特征向量中心性(Eigenvectorcentrality)如果节点\(v\)的邻域\(u\inN(v)\)中有......
  • React学习时,outlet配置(token判定,页面path监听)
    尽管写过outlet路由的配置。考虑到token判定和路由页变更,我不了解v6是不是有更详解的做法。决定调一下配置,期望在任何页面异步更新时,token都可以在跳转前被检测到,防止无token跳转发生。为src文件配置v6版本:路由子组件App.jsimport{HashRouter,Routes,Ro......
  • ​​动态规划算法
    以下是一个用C++实现的动态规划算法来解决最长子序列问题(LongestCommonSubsequence)的示例代码:#include<iostream>#include<vector>#include<algorithm>usingnamespacestd;intlongestCommonSubsequence(stringtext1,stringtext2){intm=text1.length();......