极客时间---概率论与统计学

随机数模拟抛硬币,统计正面与反面向上概率直方图

import random
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

def flip_coin(times):
  data_array = np.empty(times)
  weights_array = np.empty(times)
  weights_array.fill(1 / times)

  for i in range(0, times):                       #抛times次的硬币
    data_array[i] = random.randint(0, 1)        #假设0表示正面,1表示反面

  data_frame = pd.DataFrame(data_array)
  data_frame.plot(kind = 'hist', legend = False)  #获取正反面统计次数的直方图
  data_frame.plot(kind = 'hist', legend = False, weights = weights_array).set_ylabel("Probability")  #获取正反面统计概率的直方图
  plt.show()

flip_coin(1000000)

在这里插入图片描述
可以通过修改次数进行概率统计,随着次数的增多概率越来越趋于五五分。
随机变量与普通变量:普通变量在赋值之后就是一个确定的数值,在下次重新赋值之前会保持这个值,随机变量是随机的数值。
离散变量与连续变量:离散变量可以通过直接求和加法算出来的;连续的是使用积分算出来的。
随机变量的取值对应一个随机结果,正是结果的不确定性才引出了变量的不确定性。

  • 伯努利分布:抛硬币就使伯努利分布,就是结果又两种情况,0或者1,通过参数λ来控制这个变量为1的概率。
  • 分类分布:K的随机状态的单个随机变量。
  • 正态分布(高斯分布)
  • 期望值:和复杂度分析相关(通过概率的加权平均来计算平均时间复杂度,这就是时间复杂度的平均值)
    期望值的理解:比如公司的销售额期望,每一个客户浏览都会购买的话大概是六百万,有一半的用户购买的话大概是三百万,没有客户购买的话是0,那么我们不能直接说预期销售额是六百万或者三百万,我们要根据具体的概率来计算,如果每个客户都购买的概率是百分之三十,一般用户购买的概率是百分之六十,没有一个用户购买的概率是百分之十,那么期望值就是6000000*0.3+3000000*0.6+0*0.1=3600000
    多个随机变量决定的概率是联合概率
    朴素贝叶斯:朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法(百度百科官方)
    朴素贝叶斯包含:先验概率、后验概率、条件概率、贝叶斯法则。
    贝叶斯法则就是通过先验概率和后验概率
    先准备数据,也就是训练集;然后建立模型,计算先验概率和条件概率;最后对新数据进行预测。
朴素贝叶斯VS其他分类算法
  • KNN最近邻相比:朴素贝叶斯在训练过程中耗时更长,但是在对新数据的预测中会更节省时间
  • 决策树相比:朴素贝叶斯可以提供决策树无法支持的模糊分类(一个对象可以属于多个分类)【最常用的就是朴素贝叶斯和决策树】朴素贝叶斯简称BNC,BNC对确实数据不敏感
  • SVM支持向量机相比:NBC无法支持连续值的输入,大部分使用的都是离散值。
那么什么时候用到朴素贝叶斯嘞?

如果一个分类的应用场景中,待分类对象的属性值大部分都是离散的(或者很容易转化为离散的)、需要支持模糊分类,并且需要快速可靠的实时分类,那么这种场景通常就非常适合使用朴素贝叶斯方法。
具体到应用场景:

  • 文本分类/垃圾文本分类
  • 多分类实时预测
  • 推荐系统:朴素贝叶斯+协同过滤,协同过滤是强相关性,但是泛化能力弱,朴素贝叶斯和协同过滤一起,能够增强覆盖度和推荐效果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值