zoukankan      html  css  js  c++  java
  • 算法分类及一般建模流程

    身体不适,中断几天,接下来会陆续上传一些基本算法的概念、同时会附上一个算法使用例子。在此之前需要先把算法的大分类进行一个简单说明:

    一、按照机器学习分类

    1、有监督学习:已经知道why,这个why可以是分类变量的类别标签,也可以是要预测的数据集的值(比如收入)、可能是单类别或者多类别变量,通过目标变量的不一样有监督学习可以分为两大类,如果是鉴别类别称之为:分类,如果是预测的话,例如二手车的销售价格等,称之为:回归。【后续举例】

    2、无监督学习:比如聚类,本身不需要知道why,是探索和启发式的过程,通过寻找类之间的属性,把类进行人工定义,定义好类标签,对决策、后续数据驱动活动进行指导。再在类别基础上进行有监督学习建模,进行工程实施部署。【后续举例】

    3、强化学习:算法能够自主学习、自主迭代。对于每一个数据点,算法需要选择一个动作,学习算法接收到一个回报信号后不久,反馈这个决定好不好,基于此,算法修改其策略以达到更高的回报。【近期本博客不会延伸】

    二、依据需要解决的问题将算法分类

    1、分类:属于有监督学习,数据被用来预测一个分类,当只有两种选择时,称为二类或二项式分类,当有更多类别时称之为多项式分类

    2、回归:属于有监督学习,研究两个变量之间的关系,或者一个变量与多个变量之间的关系,即:一元回归和多元回归。如果按照自变量和因变量之间的关系类型(估计函数)划分,可分为线性回归和非线性回归。

    3、聚类:无监督学习,把原来数据集分为多个簇,每个簇里边的元素在某种意义上更加相似。可对簇进行主观定义,例如本博客之前提到的互联网金融平台重要客户分类,利用聚类将客户进行划分,分为超级买家、平台粉丝等,

    4、异常检测:无监督学习,用来检测当前数据点、或者新进数据点跟现有数据点之间的关联性,如果关联性不强,那么就认为这些点是异常点,例如金融行业里的反欺诈、OTO里边的防刷单等。

    三、按照目的看

    目标变量 算法
    预测类别 分类
    预测数值 回归
    发现数据集内部的结构 聚类
    发现异常数据点 异常检测


    无论是哪种,关键点是:数据集与需要需求的变量之间存在关联性。比如目标是反欺诈但是数据只有生理维度的信息,那么这些生理维度的信息对于反欺诈这个目的是弱变量,所拥有的区分能力并不太好,分不出来或者分得不好。

    四、相关算法:

    1、回归:

    线性回归:线性回归拟合直线,【线性回归采用最小二乘法:通过最小化误差的平方和寻找数据的最佳函数匹配】

    贝叶斯线性回归:将极大似然估计应用到线性回归模型中,并数据样本利用率百分之百,加爵了极大似然估计中存在的过拟合问题,仅仅使用训练样本就可以有效而准确的确定模型的复杂度【采用极大似然估计:已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。最大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率最大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。】

    提升决策树回归:梯度上升、下降两种方法,例如梯度下降去学习每次回归后分割错误的节点,把节点权重调高之后再进行分割。

    2、分类:

    逻辑回归:使用S形曲线代替直线,通过给出线性分类边界以便切分数据

    决策树和随机森林:C4.5、cart方法

    支持向量机(SVM):比如是两个点分类,那么就是两个点连线的垂直平分面作为分离类的边界,多维多数据点,对应超平面,通过尽可能宽的边缘方式发现分离类的边界

    人工神经网络:不太了解,但是这是它的位置(囧)

    3、聚类:之前单写过,不再赘述

    4、异常检测:

    K最近邻:对象通过其K个最近邻的多数投票来分类,输出是一个类成员。例如B属性跟A一样,但分类不一样,就怀疑是不是分错了。

    单类支持向量机:将一个类用边界包起来,边界之外的任何新数据点都认为是非正常的

    五、特征工程

    1、主成分分析(PCA):线性降维方法,找出包含信息量较高的特征主成分,解释数据大多数方差(一般85%)

    2、前向搜索:最开始不选择任何特征,然后选择最相关的特征,将这个特征加入到已有特征,计算模型的交叉验证误差,重复选取其他所有候选特征,最后,选取能使你交叉验证误差最小特征,放入已选择特征之中,重复,直到达到期望数量的特征为止。

    3、反向搜索:从所有特征开始,先移除最不相关的特征,然后计算模型的交叉验证误差,对其他候选特征重复这一过程,最后,移除时交叉验证误差最大的候选特征,重复,直到达到期望数量的特征为止。

    4、尺度不变特征变换

    5、加速稳健特征

    6、方向梯度直方图

    六、建模过程

    1、输入数据→选择算法(参考本篇文章上述内容,根据实际选择问题挑选任务大类,根据属性选择算法)→得到一个估计函数

    2、新数据→用估计函数→新估计

    估计函数成为构建的模型

    七、参数优化

    参考老师文章:

    https://notebooks.azure.com/YukWang/libraries/rDataAnalysis

  • 相关阅读:
    Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置
    python 对数函数
    Python使用os.listdir()函数来得目录内容的介绍
    Linux下基于HTTP协议带用户认证的GIT开发环境设置
    在python中如何设置当前工作目录
    Python 获得命令行参数的方法
    Python time mktime()方法
    linux中怎样从底部向上查看log文件
    python基础之使用os.system来执行系统命令
    python datetime处理时间
  • 原文地址:https://www.cnblogs.com/keepgoingon/p/7209739.html
Copyright © 2011-2022 走看看