朴素贝叶斯算法

朴素贝叶斯算法是基于特征条件独立学习输入输出的联合概率分布,基于此模型对给定的输入利用贝叶斯求得后验概率最大的y输出。现在说下朴素贝叶斯原理

                                P(Y=Ck | X=x) = P(X=x|Y=Ck)*P(Y=Ck)/P(X=x)

也就是说当特征是X的时候,分类是Ck的概率,而当Y的输出有两项时(0,1),如果当X的输入得到Y的输出是0时的概率和X的输入得到Y的输出是1时的概率相比较谁更大,我们则认为X的输入其输出则应该是那个。

# -*-coding:utf-8-*-
import jieba
goods = ["我是个中国人,我很自豪", "我相信你也是"]
bads = ["招商银行信用卡", "来就送", "夏令营"]
test = ["夏令营"]

 这里我们假如,正常分类是好的goods和坏的bads,根据这两项样本数据。而测试样本是test,我们根据分析goods和bads对test进行分类,比较test属于goods的概率和属于bads的概率谁大则朴素贝叶斯认为test属于谁

# 得到所有不重复的word
def get_words(sentences):
    words = []
    count = 0
    for sentence in sentences:
        tmp_sentence = jieba.cut(sentence)
        for item in tmp_sentence:
            count = count + 1
            if item not in words:
                words.append(item)
    return [words, count]

将goods和bads切割成单词,并计算得到好的一方和不好的一方的单词数量,并未计算好的一方每个单词在goods一方出现的概率,分别得到的结果

good_result = get_words(goods)
good_words = good_result[0]
good_count = good_result[1]
bad_result = get_words(bads)
bad_words = bad_result[0]
bad_count = bad_result[1]

接下来需要计算bads一方的每个单词出现的概率

# 垃圾邮件先验概率是0.6 正常邮件先验概率是0.4
# 得到垃圾邮件每个单词的频率
bad_word_freq = {}
for sentence in bads:
    tmp_sentence = jieba.cut(sentence)
    for item in tmp_sentence:
        if item in bad_word_freq:
            bad_word_freq[item] = bad_word_freq[item] + 1
        else:
            bad_word_freq[item] = 1
for item in bad_word_freq.keys():
    bad_word_freq[item] = bad_word_freq[item] / bad_count

计算goods一方每个单词出现的概率

# 计算得到正常邮件每个单词出现的概率
good_word_freq = {}
for sentence in goods:
    tmp_words = jieba.cut(sentence)
    for item in tmp_words:
        if item not in good_word_freq.keys():
            good_word_freq[item] = 1
        else:
            good_word_freq[item] = good_word_freq[item] + 1
for item in good_word_freq.keys():
    good_word_freq[item] = good_word_freq[item]/good_count

将test中每个单词在bads中出现单词的概率进行连乘,得到的结果,并乘以bads的先验概率

#进行计算获得测试样本的垃圾邮件的概率
bad_lv = 1
for sentence in test:
    tmp_words = jieba.cut(sentence)
    for item in tmp_words:
        if item in bad_word_freq.keys():
            bad_lv = bad_lv* bad_word_freq[item]
print("垃圾邮件的概率:" + str(bad_lv*0.4))

将test中每个单词在goods中出现单词的概率进行连乘,得到的结果,并乘以good的先验概率

#计算得到测试样本是正常邮件的概率
good_lv = 1
for sentence in test:
    tmp_words = jieba.cut(sentence)
    for item in tmp_words:
        if item in good_word_freq.keys():
            good_lv = good_lv*good_word_freq[item]
print("正常邮件的概率:"+str(good_lv*0.6))
输出的两个值谁大谁是good


在对透明度措施的怀疑日益增加的情况下,本文支持披露监管可以在在线交易中发挥作用,如果它是通过算法设计的。 这需要解决几个理论上的法律挑战并桥接技术解决方案,使本文为法律与技术奖学金做出贡献。 这篇文章的贡献有三方面。 首先,它提供了对新兴奖学金的回顾:法律与技术(Law&Tech),它不同于技术或创新法、法律技术和实证法律研究。 Law&Tech 是一个新的研究领域,它使用来自自然语言处理 (NLP) 和机器学习 (ML) 的工具来调查法律主题。 我们围绕四个研究领域对其进行分类:(i)分析,(ii)解释(iii)应用和执行,(iv)增强。 (第一部分)其次,本文借鉴了法律与技术文献的第四个(iv)面向未来的子类别,以证明关于算法如何有助于加强披露监管的规则制定的研究仍然有限。 因此,它推进了当前关于如何实现这一点的知识。第三,它提出了一个新的(两阶段)模型来起草有效的披露法规。 在这两个阶段都使用了算法技术,使这一贡献符合法律与技术奖学金。 在第一阶段,我们建议使用自然语言处理和机器学习技术首先结合规则和行业披露(de iure 和 de facto 披露),然后对它们进行评分以选择“失败”最少的那些:BADs 或 Best可用的披露。 (第二部分)在第二阶段,我们建议使用监管沙箱来测试 BAD 并获得 BED(或有史以来最好的披露)。 从技术上讲,BED 将: 适应收件人的信息需求(即通过行为数据馈入); 针对多元化的收件人群体; 实施成本低。 从法律的角度来看,在实施之前测试沙箱中的消息有助于授予算法规则制定的正当程序(透明度和参与性); 还要增加 BED 的相称性(对接受者来说负担最小的解决方案)(第三部分)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

世纪殇

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值