zoukankan      html  css  js  c++  java
  • 机器学习--基础入门

    一、说在前面

      今天开始第一节数据酷客的学习,进行机器学习的入门,机器能学习吗?

    二、笔记

    机器学习方法的分类

    有监督学习
    数据集中的样本带有标签,有明确目标
    回归和分类
    目标:找到样本到标签的最佳映射 y=f(x) 找到这个f
    应用场景:垃圾邮件分类、病理切片分类、客户流失预警、客户风险评估、房价预测等
    典型方法
    回归模型:线性回归、岭回归、LASSO和回归样条等
    分类模型:逻辑回归、K近邻、决策树、支持向量机等

    无监督学习(根据数据本身的分布特点,挖掘反映数据的内在特性)
    数据集中的样本没有标签,没有明确目标
    聚类、降维、排序、密度估计、关联规则挖掘

    聚类:将数据集中相似的样本进行分类,使得:
    同一组对象之间尽可能相似;
    不同组的对象之间尽可能不相似。

    应用场景:
    基因表达水平聚类:基因表达水平聚类∶根据不同基因表达的时序特征进行聚类,得到基因表达处于信号通路上游还是下游的信息
    篮球运动员划分:篮球运动员划分∶根据球员相关数据,将其划分到不同类型(或者不同等级)的运动员阵营中
    客户分析:把客户细分成不同客户群,每个客户群有相似行为,做到精准营销

    电信客户分析(K-means)
    K-means
    (1)选择K个点作为初始质心
    (2)Repeat:将每一个点指派到最近的质心,形成K个簇,重新计算每一个簇的质心
    (3)直到质心不发生变化

    强化学习
    指挥决策的过程,通过过程模拟和观察来不断学习、提高决策能力
    例如:AlphaGo

    基本概念
    agent:智能体(学习的对象)
    environment:环境(和agent不断交互)
    state:状态(environment对agent的反馈)
    action:行动(根据state采取最佳的action)
    reward:奖励

    机器学习核心概念和一般流程:
    数据集:一组样本的集合
    样本:数据集的一行。一个样本包含一个或多个特征,此外还可能包含一个标签
    特征:数据集的一列。在进行预测时的输入变量

    以有监督学习为例:
    有监督学习的数据集还分 
    训练集:用于训练模型的数据集
    测试集:用于测试模型的数据集
    模型:建立数据的输入x和输出y之间的映射关系 y=f(x)
    损失函数: L(yi,f(xi)),用来制定一个学习目标
    优化目标:对损失函数的最小化,最优化的问题

    模型过于复杂(过度拟合):例如参数过多,导致所选模型对已知数据预测得很好,但对未知数据预测很差
    正则化:

    模型的选择:
    交叉验证(数据集不太大):基本想法是重复地使用数据。将数据集随机切分,将切分的数据集组合为训练集和测试集,在此基础上反复进行训练,测试和模型选择。
    K折交叉验证:随机地将数据切分为K个子集,每次利用k-1个子集的数据训练模型,余下的数据测试模型,最后选择在k次测评中平均性能最好的模型。

    机器学习中的数学结构
    数据也是有数据结构的,没有数据结构便无法处理数据
    度量结构︰表示数据之间的距离。
    网络结构︰有些数据本身就有网络结构,如社交网络。如果没有,可以利用度重结构给数据附加一个网络结构。
    代数结构︰将数据看作向量、矩阵或更高阶的张量。tensorflow
    几何结构︰流形、对称性等

    度量结构与K近邻算法
    文本处理为例:
    计算两篇文章的距离,相似度:以字典上所有的词作为坐标,对应的文章中词频作为坐标值,便可以将文章表示为向量,使用余弦相似度来计算文章的距离
    K近邻:当对测试样本进行分类时,找到训练集中与该样本集最相似的k个样本,根据k个样本的标签确定测试样本的标签。k的选择很重要,k不同可能会影响预测结果
    提高计算速度:最常用的数据结构为k-d数,是二叉搜索树在多维空间上的扩展。

    网络结构与PageRank算法
    有了数据的度量结构,可以很容易定义一个网络结构。网络表示为G=<V,E>,V表示节点,E表示边。
    例如两个样本的距离校宇某个阈值,就连一条边,也可以进一步将边赋予权重。
    PageRank:

    实践案例
    案例1:使用KNN对新闻主题进行自动分类

    案例2:使用PageRank对全球机场进行排序

    实践工具
    jieba
    sklearn
    pandas
    matplotlib
    networkx

    三、体会

    通过第一节课的学习我学习到了一些关于机器学习的基础知识,但是其中内部的实现还不了解,就像笔记中对老师的案例讲解和使用的工具根本不明白,先留下空缺,待之后的学习来填补空白。

  • 相关阅读:
    BZOJ3992 [SDOI2015]序列统计 【生成函数 + 多项式快速幂】
    BZOJ3993 [SDOI2015]星际战争 【二分 + 网络流】
    BZOJ3325 [Scoi2013]密码 【manacher】
    BZOJ3534 [Sdoi2014]重建 【矩阵树定理】
    BZOJ3507 [Cqoi2014]通配符匹配 【哈希 + 贪心】
    BZOJ2285 [SDOI2011]保密 【01分数规划 + 网络流】
    BZOJ4556 [Tjoi2016&Heoi2016]字符串 【后缀数组 + 主席树 + 二分 + ST表】
    BZOJ4817 [Sdoi2017]树点涂色 【LCT + 线段树】
    BZOJ1195 [HNOI2006]最短母串 【状压dp】
    malloc的使用、用malloc动态分配内存以适应用户的需求的源代码实例
  • 原文地址:https://www.cnblogs.com/suanai/p/14331699.html
Copyright © 2011-2022 走看看