机器学习模型原理及代码

目录

一 什么是线性模型

1.1 定义

1.2 回归和分类的转换

 1.3 几何解释

二 线性回归

2.1 定义

 2.2 参数学习方法

三 Logistic回归

3.1 定义

 3.2 参数学习方法

四 SoftMax回归

4.1 定义

4.2 参数学习方法

五 感知机

5.1 定义

 5.2 参数学习方法

六 支持向量机

6.1 定义

6.2 核函数和核方法

6.3 参数学习方法

七 Numpy实现代码

7.1 Logistic回归

7.2 SoftMax回归

7.3 支持向量机

八 Scikit-learn实现代码

8.1 Logistic回归

8.2 支持向量机


一 什么是线性模型

1.1 定义

1.2 回归和分类的转换

 1.3 几何解释

二 线性回归

2.1 定义

 2.2 参数学习方法

三 Logistic回归

3.1 定义

 3.2 参数学习方法

四 SoftMax回归

4.1 定义

4.2 参数学习方法

同样采用交叉熵损失函数进行参数学习

五 感知机

5.1 定义

 5.2 参数学习方法

输入:训练集D,最大迭代次数T
初始化:w_0 <- 0,k <- 0,t <- 0
repeat
    对训练集D进行随机打乱
    for n=1...N do
        选取一个样本(x_n,y_n)
        if y_n*w_k*x_n <=0 then
            w_k+1 <- w_k+y_n*x_n
            k <- k+1
        end
        t <- t+1
        if t=T then 
            break
    end
until t=T
输出:w_k

六 支持向量机

6.1 定义

当训练数据线性可分时,通过硬间隔最大化,可以学习一个线性的分类器,称为线性可分支持向量机或硬间隔支持向量机。

当训练数据近似线性可分时,通过软间隔最大化,也可以学习一个线性的分类器,称为线性支持向量机或软间隔支持向量机。

当训练数据非线性可分时,通过使用核技巧及软间隔最大化,可以学习一个非线性支持向量机。

6.2 核函数和核方法

当输入空间为欧式空间或离散集合,特征空间为希尔伯特空间时,核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积,通过核函数可以学习非线性支持向量机,其等价于隐式的在高维的特征空间中学习非线性支持向量机。这种方法称为核技巧、核方法。

6.3 参数学习方法

七 Numpy实现代码

7.1 Logistic回归

import numpy as np


# Logistic回归
class LogisticRegression:
    def __init__(self, n_iter=200, eta=1e-3, tol=None):
        # 训练迭代的次数
        self.n_iter = n_iter
        # 学习率
        self.eta = eta
        # 损失函数变化阈值
        self.tol = tol
        # 模型参数w(训练时初始化)
        self.w = None

    def _z(self, X, w):
        '''g(x)函数: 计算x与w的内积.'''
        return np.dot(X, w)

    def _sigmoid(self, z):
        '''Logistic函数'''
        return 1. / (1. + np.exp(-z))

    def _predict_proba(self, X, w):
        '''h(x)函数: 预测y为1的概率.'''
        z = self._z(X, w)
        return self._sigmoid(z)

    def _loss(self, y, y_proba):
        ''
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员学习Chat

感谢老板!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值