统计学方法第一章极大似然估计和贝叶斯估计

感知机python自编码
栗子:在掷硬币实验中估计出现正面向上的概率θ(西塔)。
在这里插入图片描述
word版的推导过程,资源链接如下:
https://download.csdn.net/download/weixin_37200373/11974264
极大似然是根据样本的信息对θ求的估计
贝叶斯估计不仅有样本信息还有先验信息。
1)先验:根据统计历史上的经验、常识当下事件发生的概率;

2)似然:当下事件由果及因发生的概率;

3)后验:当下事件由因及果发生的概率。

先验概率分布,即关于某个变量 p 的概率分布p(θ) ;对于结果 x ,在参数集合 θ 上的似然,就是在给定这些参数值的基础上,观察到的结果的概率 L(θ|x)=p(x|θ) ;后验概率是关于参数 θ 在给定的证据信息 X 下的概率: p(θ|x) 。后验概率定义如下:p(θ|x)=p(x|θ)p(θ)/p(x)。

一。Γ\GammaΓ分布

指数分布是两次事件发生的时间间隔
Γ\GammaΓ分布是n倍的指数分布
即,Γ\GammaΓ分布表示发生n次(α\alphaα次)事件的时间间隔的概率分布。

其实 Γ\GammaΓ分布 就是Possion分布在正实数集上的连续化版本
问题:已知数据集D服从概率分布P,P中参数未知。
极大似然估计目标:未知参数θ使得数据集D(x1,x2…xn)发生的概率最大。max P(D/θ)(未知参数θ是一个定值)
而贝叶斯估计目标:数据集D(x1,x2…xn)发生的情况下,哪一个θ发生的概率最大。max P(θ/D)(未知参数θ本身服从一定的概率分布)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
等于0代表是直线,如果是大于0是+1,如果是小于0的是-1
等于0代表是直线,如果是大于0是+1,如果是小于0的是-1;
判断错误的点到直线的距离
在这里插入图片描述
点到直线的距离计算:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
那么所有误分类点的总距离:
在这里插入图片描述
然后最小化:
在这里插入图片描述
因为|W|没有x和b所以等价于:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这点是误分类点:
在这里插入图片描述
更新w和b:旋转和平移
在这里插入图片描述
更新完后会得到新的直线:
在这里插入图片描述
继续找出误分类的点去更新直线直到没有误分类的点;
最后找到的直线可能并不是唯一确定的,可能决定于它选的初始值以及误分类点的顺序;
每一次只通过一个误分类点来更新直线,那我选择不同的误分类点导致不同的结果;

在这里插入图片描述
当训练集中没有误分类点的时候,输出w和b就可以确定一条直线了;
在这里插入图片描述
假设空间由:

决定
决定而不是:
在这里插入图片描述
学习率的取值在0和1之间,越靠近1说明我的直线向误分类点移动程度都比较大;
在这里插入图片描述
算法2.2相比算法2.1可以提前算出x的内积,提前减少负担;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Nov 15 10:05:18 2019

@author: Anne
"""

import numpy as np
import matplotlib.pyplot as plt
class MyPerceptron:
    def __init__(self):
        #选出初始值w0,b0以及学习率l_rate
        self.w = None
        self.b = 0
        self.l_rate = 1
        
    def fit(self,X_train,y_train):
        #用样本点的特征数量更新初始w,如x1 = (3,3)T,有两个特征,self.w = [0,0]
        self.w = np.zeros(X_train.shape[1])#初始化数据集
        i = 0
        #然后遍历数据集
        #如果存在无分类点yi(w.xi+b)<=0(误分类点有两种情况-yi(wx+b)>0另一种情况:yi(wxi+b)<0书上27页有的):
        #w = w+l_rateyixi
        #b = b+l_rate.yi
        #在更新平面的时候误分类点需要重新去判定
        #如果判定是被正确分类了就i+1,这里i+1表示进行下一个点的判定,直到所有的点都被正确分类了,这时的i就等于X_train.shape[0]
        while i<X_train.shape[0]:
            X = X_train[i]
            y = y_train[i]
            if y*(np.dot(self.w,X)+self.b) <= 0:
                self.w = self.w + self.l_rate*np.dot(y,X)
                self.b = self.b + self.l_rate*y
                i = 0#如果是误判点,从头进行检测
            else:
                i+=1
    
                
def draw(X,w,b):
    #生产分离超平面上的两点
    X_new=np.array([[0], [6]])
    y_predict=-b-(w[0]*X_new)/w[1]
    #绘制训练数据集的散点图
    plt.plot(X[:2,0],X[:2,1],"g*",label="1")
    plt.plot(X[2:,0], X[2:,0], "rx",label="-1")
    #绘制分离超平面
    plt.plot(X_new,y_predict,"b-")
    #设置两坐标轴起止值
    plt.axis([0,6,0,6])
    #设置坐标轴标签
    plt.xlabel('x1')
    plt.ylabel('x2')
    #显示图例
    plt.legend()
    #显示图像
    plt.show()
#主函数
def main():
    # 构造训练数据集
    X_train=np.array([[3,3],[4,3],[1,1]])
    y_train=np.array([1,1,-1])
    # 构建感知机对象,对数据集继续训练
    perceptron=MyPerceptron()
    perceptron.fit(X_train,y_train)
    print(perceptron.w)
    print(perceptron.b)
    # 结果图像绘制
    draw(X_train,perceptron.w,perceptron.b)
    
if __name__=="__main__":
    main()
    
    
    
    

    
    
    
    

在这里插入图片描述

在这里插入图片描述
py文件下载地址:https://download.csdn.net/download/weixin_37200373/11987967
word版贝叶斯估计推导过程文件下载地址:
https:///download.csdn.net/download/weixin_37200373/11974264

sklearn里感知机:

from sklearn.linear_model import Perceptron
import numpy as np

X_train = np.array([[3, 3], [4, 3], [1, 1]])
y = np.array([1, 1, -1])

perceptron=Perceptron()
perceptron.fit(X_train,y)
print("w:",perceptron.coef_,"\n","b:",perceptron.intercept_,"\n","n_iter:",perceptron.n_iter_)

res=perceptron.score(X_train,y)
print("correct rate:{:.0%}".format(res))

其他问题:
在这里插入图片描述

在这里插入图片描述
Q1:学习率对迭代过程和最终结果有无影响?
当w,b的初始值均为0的话没有影响,因为w和b都是0,更新的时候w和b都是倍速(学习率)可以同时去掉学习率没有影响;
但是w和b的初始值不为0的话,就会有影响了;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值