专栏首页嘘、小点声按部就班的吴恩达机器学习网课用于讨论(11)

按部就班的吴恩达机器学习网课用于讨论(11)

核函数2

知道了核函数的表示形式(使用例如高斯核函数作为工具,计算样本x和地标l之间的距离作为特征f,其中f为核函数),之后就是讨论核函数地标的选择。

选择形式为:将训练集中的样本个数m选择,作为地标,获得m个特征f。并增加一个偏置f0=1。得到m+1维的特征f。

对于支持向量机的thetaT*x,则变为thetaT*f。其大于0,则表示为预测为正样本。对应的目标函数表示中的cost函数参数也进行变化为如下形式。

另外如下的式子中,正则化部分的tehta^2,等于thetaT*theta,变为thetaT*M*theta,其中M矩阵内容与核函数有关,目的为:简化计算(怎么简化了)。

另外,参数对于支持向量机模型的效果影响如下,其中C是目标函数中的参数,越大,表示更注重前者的代价部分,

在使得目标函数尽可能小的时候,则要求前者cost函数值更小,而要求后者正则化部分的theta对特征的影响更大,theta的作用更强,从而更容易过拟合。

sigma是高斯核函数的分母部分,值越大,其核函数图样就越宽大,相对于同样的theta和x(x为f核函数中的参数),只变化了cost函数中的f参数,使得其参数值f,更大。

而cost中的参数thetaT*f 更大,使得cost函数值更小,目标函数中前者更小,在要求目标函数尽可能小的情况下,更倾向于正则化项的大小对目表函数的影响,则要求降低theta的影响,更容易欠拟合。

其它类似推论吧

使用支持向量机

支持向量机,使用过程中细节非常多吧,非常复杂,一般使用函数库调用的方式。核函数的种类也很多,如多项式核,字符串核,卡方核等构建的距离特征,并满足Mercer定理。

另外的使用过程中,对数据进行缩放处理,使得数据中的每一个特征对机器学习模型的输出影响都是一定量的,不会过大而忽视了其他特征对于输出的影响。

多分类任务中,采用多个向量机,如k分类,采用k个向量机。(二分类采用1个向量机,三分类采用3个向量机,k分类k个向量机)。

其实采用k-1个向量机也可以吧(如果是非此即彼的关系),但是不够正式。采用k个向量机的分类方式,应该是1与其他的多个二分类问题吧。

在支持向量机和逻辑回归模型对于一个机器学习问题,的选择方面:

认为说训练数据集中,特征n相对于个数m来说,过大或者过小,都是使用逻辑回归模型(线性核函数与逻辑回归有不少类似的地方)。

特征与训练个数相当,则使用带高斯核函数的SVM。不知道,逻辑回归和线性核函数的表现类似,但是实际表现也有区别,或者高斯核函数。

另外,SVM更容易获得临近或者就是的,全局最优。

无监督学习:简介、K均值算法

无监督学习,没有标签,只是将数据集分为k个簇的方法。

至于分为几个,可以根据需要、手动选择。K-means算法如下:

随机选择要非k类的k个地标点,作为初始点。

在数据集上,以距离作为度量方式,使用该k个地标点,将数据集,进行分类。对分完类的数据集,每类中的数据求均值,将均值赋值给该类中对应的地标点,完成一次地标点移动。

重复多次,获得数据集中每个类中的中心点,作为了地标点。

优化目标

优化目标(代价函数)为J,意思是,在m个数据进行k分类的过程中,K-means算法下,要求地标点和该地标点对应的数据点的,距离和,最小。

认为在K-means算法中的两个循环步骤依次进行下,J一定要越来越小。

在选择分类的过程中,使得J函数中的x所属的分类变化(x对应的c变化),使得J减小。在计算均值过程中,使得J函数中的mu变化,导致J减小。

随机初始化

K-means的初始化点,对其效果影响很大。初始化的地标点,一般选择已经存在的数据点。为了降低初始化带来的局部最优等不良的影响,

多次初始化,多次计算得出的J,选择一个最小的误差J和该对应的模型,作为最终的结果。下面是相同的思路,不同的表达方式(伪代码):

选择聚类数

选择聚类数,一种方式是根据需要手动选择,如在服装大小制造,消费者群体,成本与收益的问题上,将消费者分为几个类别的服装大小,不仅是和目标函数J有关,

根本上,是和商家收益相关(每个衣服量身定做,当然是好了J,但是成本上升)。所以在定分类数上,需要另外斟酌。

也可以根据目标函数J,来选择k的大小作为一个参考,如使用肘部的点,作为参考。

如下是J随着分类数量的增长而下降的趋势。肘部方法(Elbow method)认为,在分类为3处取得最好的结果。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 按部就班的吴恩达机器学习网课用于讨论(5)

    向量化乘法可以帮助更快更直接的运行乘法并求和。将之前的分别乘法并求和直接转换为一步的矩阵乘法。

    嘘、小点声
  • java学习与应用(3.5)--网络、流、方法引用

    C/S结构,B/S结构。TCP/IP传输控制协议/网络协议(面向连接,三次握手,无差错传输)。UDP用户数据报协议(无连接,发送端不确认接收端是否存在,64kb...

    嘘、小点声
  • Latex使用记事(1)

    特殊符号的表示需要使用转义方式,但是\\表示的是换行而不是\。需要则使用$\backslash$表示。

    嘘、小点声
  • 【Python实践-6】将不规范的英文名

    1、函数,面向过程的程序设计的基本单元。何为面向过程?通过一层一层的函数调用,把复杂任务分解成简单的任务。

    py3study
  • C语言概述归纳整理

    2.一个c程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何,最后在main函数中结束。

    诸葛青云
  • Python之函数编程(2)

    在上面的命令中,我们定义一个return_sum()的函数,这个函数返回一个sum的函数,sum函数的作用是求一个可迭代对象的所有元素的和,当我们直接调...

    AsiaYe
  • python高阶函数

    高阶函数定义: 1.函数接收的参数是一个函数名; 2.函数返回的是一个函数名; 只要满足上述条件中的任意一个条件的函数均属于高阶函数

    py3study
  • 五撩Python

    重复,再重复,你就是专家。 --曾子 1、起手 来说函数。 2、函数 函数就是整理好的一堆可重用的代码,有输入,然后就有输出。 比如我们计算折扣,输入是消费者的...

    企鹅号小编
  • Kotlin中let()with()run()apply()also()函数的使用方法与区别

    相比Java, Kotlin提供了不少高级语法特性。对于一个Kotlin的初学者来说经常会写出一些不够优雅的代码。在Kotlin中的源码标准库(Standard...

    砸漏
  • Go 语言基础入门教程 —— 函数篇:函数的基本定义和调用

    几乎所有编程语言都支持函数,编写函数的目的在于将复杂的问题分解为一系列简单的任务来处理,此外同一个函数还可以被多次复用,这一结构在面向过程的函数式编程中至关重要...

    学院君

扫码关注云+社区

领取腾讯云代金券