新兴产业概念扫盲3-AI人工智能

        以下内容主要来自去年编写某个工作方案期间的学习,以及近期阅读书籍和学习极客时间课程的笔记。属于扫盲的一个简单小结。本人算是半个围棋迷,AlphaGo横空出世击败当时世界围棋第一人李世石,让我首次真正关注人工智能、机器学习等内容。实际感受到其实际效用,是在去年的省级大项目咨询设计以及今年的GA的项目设计中,和TX、SG、KDXF、GXX等公司深度交流中感受到的,这玩意已经在实实在在的作为大卖点卖钱了。

1、机器学习

     1.1 基本概念

 机器学习是计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的学科。可说是从数据中来,到数据中去。机器学习要做的就是根据已有的训练数据推导出描述所有数据的模型,并根据得出的模型实现对未知的测试数据的最优预测。(例如:AlphaGo属于典型的机器学习,开始是利用人类棋谱进行训练。到了Zero以后,就是自己和自己拆棋,3天能写搞对抗的几十万盘,人哪能有这样的训练强度,自然被干趴下,一堆世界冠军被打倒让两子以下。这类属于规则明确而且不存在多种因素博弈的,机器学习效果立竿见影。)

       根据输入输出类型的不同,预测问题可以分为以下三类。1)分类问题:输出变量为有限个离散变量,当个数为 2 时即为最简单的二分类问题;2)回归问题:输入变量和输出变量均为连续变量;3)标注问题:输入变量和输出变量均为变量序列。

      重要指标:  错误率。机器学习必然存在过拟合(学习时模型包含的参数过多,从而导致训练误差较低但测试误差较高。)、欠拟合()等情况,会存在错误率。

       调参,也就是对算法参数进行设定,是机器学习中重要的工程问题,在神经网络与深度学习中体现得尤为明显。

根据训练数据是否具有标签信息,可以将机器学习的任务分成以下三类。

  • 监督学习:基于已知类别的训练数据进行学习;
  • 无监督学习:基于未知类别的训练数据进行学习;
  • 半监督学习:同时使用已知类别和未知类别的训练数据进行学习。

受学习方式的影响,效果较好的学习算法执行的都是监督学习的任务。

监督学习的任务就是在假设空间中根据特定的误差准则找到最优的模型。根据学习方法的不同,监督学习可以分为生成方法与判别方法两类。两相对比,生成方法具有更快的收敛速度和更广的应用范围,判别方法则具有更高的准确率和更简单的使用方式。

1.2 基本方法

  1. 线性回归:假设输出变量是若干输入变量的线性组合,并根据这一关系求解线性组合中的最优系数。最小二乘法可用于解决单变量线性回归问题,当误差函数服从正态分布时,它与最大似然估计等价;对于单变量线性回归而言,在误差函数服从正态分布的情况下,从几何意义出发的最小二乘法与从概率意义出发的最大似然估计是等价的。多元线性回归问题也可以用最小二乘法求解,但极易出现过拟合现象;岭回归和 LASSO 回归分别通过引入二范数惩罚项和一范数惩罚项抑制过拟合。
  2. 朴素贝叶斯方法:朴素贝叶斯方法利用后验概率选择最佳分类,后验概率可以通过贝叶斯定理求解;朴素贝叶斯方法假定所有属性相互独立,基于这一假设将类条件概率转化为属性条件概率的乘积;朴素贝叶斯方法可以使期望风险最小化;影响朴素贝叶斯分类的是所有属性之间的依赖关系在不同类别上的分布。
  3. 逻辑回归方法:逻辑回归模型是对线性回归的改进,用于解决分类问题;逻辑回归输出的是实例属于每个类别的似然概率,似然概率最大的类别就是分类结果;在一定条件下,逻辑回归模型与朴素贝叶斯分类器是等价的;多分类问题时可以通过多次使用二分类逻辑回归或者使用 Softmax 回归解决。
  4. 决策树:决策树是包含根节点、内部节点和叶节点的树结构,通过判定不同属性的特征来解决分类问题;决策树的学习过程包括特征选择、决策树生成、决策树剪枝三个步骤;决策树生成的基础是特征选择,特征选择的指标包括信息增益、信息增益比和基尼系数;决策树的剪枝策略包括预剪枝和后剪枝。
  5. 支持向量机:线性可分支持向量机通过硬间隔最大化求出划分超平面,解决线性分类问题;线性支持向量机通过软间隔最大化求出划分超平面,解决线性分类问题;非线性支持向量机利用核函数实现从低维原始空间到高维特征空间的转换,在高维空间上解决非线性分类问题;支持向量机的学习是个凸二次规划问题,可以用 SMO (Sequential Minimal Optimization,序列最小最优化)算法快速求解。
  6. 集成学习:集成学习使用多个个体学习器来获得比每个单独学习器更好的预测性能,包括序列化方法和并行化方法两类;多样性要求集成学习中的不同个体学习器之间具有足够的差异性;序列化方法采用 Boosting 机制,通过重复使用概率分布不同的训练数据实现集成,可以降低泛化误差中的偏差;并行化方法采用 Bagging 机制,通过在训练数据中多次自助抽取不同的采样子集实现集成,可以降低泛化误差中的方差。
  7. 聚类分析:聚类分析是一种无监督学习方法,通过学习没有分类标记的训练样本发现数据的内在性质和规律;数据之间的相似性通常用距离度量,类内差异应尽可能小,类间差异应尽可能大;根据形成聚类方式的不同,聚类算法可以分为层次聚类、原型聚类、分布聚类、密度聚类等几类;聚类分析的一个重要应用是对用户进行分组与归类。典型应用:用户画像
  8. 降维学习:主成分分析利用正交变换将可能存在相关性的原始属性转换成一组线性无关的新属性,并通过选择重要的新属性实现降维;主成分分析的解满足最大方差和最小均方误差两类约束条件,因而具有最大可分性和最近重构性;特征选择则是选取原始特征中的一个子集用于学习任务,是另一种主要的降维技术;特征选择的关键问题是对特征子集的评价,主要的特征选择算法包括包裹法、过滤法和嵌入法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的生成器(generator)是一种特殊的迭代器,可以用来逐步生成序列。与普通函数不同,生成器函数使用yield关键字来返回值,而不是return。当函数执行到yield时,函数会暂停并将yield后面的值返回给调用者,但是函数的状态仍然保留在内存中,可以再次恢复执行。 以下是一些生成器的用法: 1. 生成器表达式 Python中的生成器表达式与列表推导式类似,但是使用圆括号而不是方括号。它可以用来生成一个序列,而不是一次性生成整个序列。 示例: ``` gen = (x * x for x in range(10)) for i in gen: print(i) ``` 2. yield语句 yield语句可以用来定义生成器函数。当函数执行到yield语句时,函数会暂停并将yield后面的值返回给调用者。函数的状态仍然保留在内存中,可以再次恢复执行。 示例: ``` def generator_func(): for i in range(10): yield i * i gen = generator_func() for i in gen: print(i) ``` 3. send方法 send方法可以在生成器函数中向生成器发送一个值,并继续执行生成器函数。这个值可以通过yield语句返回。 示例: ``` def generator_func(): while True: x = yield print(x) gen = generator_func() next(gen) gen.send(10) ``` 4. yield from语句 yield from语句可以用来在生成器函数中调用另一个生成器函数。它可以让代码更加简洁,并且能够处理嵌套生成器的情况。 示例: ``` def child_gen(): for i in range(5): yield i def parent_gen(): yield from child_gen() gen = parent_gen() for i in gen: print(i) ``` 以上是一些生成器的用法,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值