zoukankan      html  css  js  c++  java
  • andrew ng machine learning week7 支持向量机

    吴恩达机器学习全套笔记博客地址
     

    对于逻辑回归的新的view 

     支持向量机的函数设定为cost(),曲线和逻辑回归非常相似

     A + lambda * B 

    c * A + B  

    只是设定不同的项不同的权重,两者可以转换的

     large margin 的含义

    正样本我们希望theta * x 大于 1 , 负样本则小于-1 ; 支持向量机的要求相对于逻辑回归更高,不仅仅是以0作为分界线。

    SVM的决策边界,想让cost最小,则第一部分为0,也就是下面这两种情况:

    决策边界是线性可分的:

    C 设置的非常大的作用:

    异常点的影响:圈圈中的个别叉或者叉中的个别圈 ,可能很轻易地改变了我们的决策边界。C设置地特别大则会避免这种情况。

    或者针对线性不可分的情况

    kenerls 


    用f来表示x的幂次项

    使用similarity(核函数)函数来计算x和随机选择的L点之间,这里选择的是高斯函数

    如果x靠近l则高斯函数值为1,否则为0

    高斯函数的三位图像,方差的选择对于图像下降速度的影响,越大则下降地越慢(因为是分母嘛)

    从图像中看出当两点接近时处于顶峰1,否则则随着距离的变远逐渐下降

    根据计算值的正负进行划分,这样就可以确定一个区域,即使不是线性可分也可确定一个非线性的区域

    L:landmark的选择很简单啦其实就是每个训练集样本点:

     具体的操作过程:

    参数的选择:

    具体的实践


    使用svm工具包来计算theta

    需要明确指出:C参数和kernel函数的选择(默认为线性核函数)

    这里注意一定要进行特征缩放

    其他的和函数选择:满足默赛尔定理来正确地优化模型

    多项式核函数

    字符串核函数(输入为字符串)

    ... 

    多分类

    许多svm包内建多分类工具

    或者使用one vs all 的方法,计算完之后选择最大的

    逻辑回归和svm的区别

    1. 如果N很大,远大于M 

    使用逻辑回归或者线性的svm

    2. 如果n 很小,M中等

    使用高斯函数的svm

    3. N很小,m很大

    增加更多的特征,使用逻辑回归或者线性svm

    神经网络对于这些都能适用,但是缺点是训练的很慢

  • 相关阅读:
    定时器工厂
    无聊js画了个菱形
    盒模型之滚动条
    无聊,纯css写了个评分鼠标移入的效果
    json属性名为什么要双引号?
    原生js写的一个简单slider
    D2 前端技术论坛总结(上)
    第一天,入坑 —— 2014.10.24
    获取div相对文档的位置
    我们平时是怎么写html和css的?
  • 原文地址:https://www.cnblogs.com/twomeng/p/9870327.html
Copyright © 2011-2022 走看看