1.贝叶斯定理
是一个经典的条件概率定理,其在机器学习中主要用来通过结果推算出原因产生的概率。P(A/B)*P(B)=P(B/A)*P(A)
2.字符串分类案例
#案例:随机输入一个字符串,判定其最可能属于哪个类别? #若计算P(cat/str)=P(cat)*P(str/cat)/P(str) #由于P(str)概率相同,因此公式可以简化为:P(cat/str)=P(cat)*P(str/cat) cat1=["a","b","c","d","e","j"] cat2=["a","d","o","h","e"] cat3=["a","b","l","e","h","f"] a="abcd" def predict(str1): cat=[cat1,cat2,cat3] p={0:0,1:0,2:0} p1=[len(cat1)/26,len(cat2)/26,len(cat3)/26]#26个字母中出现的概率 for i in str1: for j in range(len(cat)): if i in cat[j]: p[j]+=1/len(cat[j])*p1[j] #在cat1中字符串产生的概率, return sorted(p.items(),key= lambda p:p[1],reverse=True ) if __name__ == '__main__': print(predict(a)[0])