admin 管理员组文章数量: 1086866
贝叶斯估计(python 版)
一、实现例子
例子:李航《统计学方法》例4.1
二、最终效果
三、代码实现
import numpy as nptrain_data = np.array([[1, "S", -1], [1, "M", -1], [1, "M", 1], [1, "S", 1], [1, "S", -1],[2, "S", -1], [2, "M", -1], [2, "M", 1], [2, "L", 1], [2, "L", 1],[3, "L", 1], [3, "M", 1], [3, "M", 1], [3, "L", 1], [3, "L", -1]])test_data = np.array([2, "S"])fea = [{"1": 0, "2": 0, "3": 0}, {"S": 0, "M": 0, "L": 0}]
Y = {"-1": 0, "1": 0}fea_concat_y = {}train_set_num = len(train_data)for i in range(train_set_num):data = train_data[i]size = len(data)'''key = x0,y or x1,y'''for j in range(size-1):fea[j][str(data[j])] = fea[j][str(data[j])] + 1key = data[j] + ',' + data[size-1]if key not in fea_concat_y:fea_concat_y[key] = 1else:fea_concat_y[key] = fea_concat_y[key] + 1Y[data[size-1]] = Y[data[size-1]] + 1'''
特征个数 len(test_data)
'''p_result = .0
predict_label = ''
for y in Y:p_y = Y[y]*1.0 / train_set_nump_mul = p_yfor j in range(len(test_data)):key = test_data[j]+',' + yp_x_1_y = fea_concat_y[key]*1.0 / train_set_num / p_yp_mul = p_mul * p_x_1_yif p_mul > p_result:p_result = p_mulpredict_label = y
print("test case is:", test_data)
print("predict label is:", predict_label)
print("prob is", p_result)
本文标签: 贝叶斯估计(python 版)
版权声明:本文标题:贝叶斯估计(python 版) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1686581542a13090.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论