⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计11252字,阅读大概需要20分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
⏰个人网站:https://jerry-jy.co/❗❗❗知识付费,🈲止白嫖,有需要请后台私信或【文末】个人微信公众号联系我
人工智能数学与代码实现--概率论与数理统计6(实例)
人工智能数学与代码实现–概率论与数理统计6(实例)
实验背景
概率论与数理统计是研究随机现象统计规律的一门数学学科,是对随机现象的统计规律进行演绎和归纳的科学。目前,各领域的研究者普遍采用概率统计方法来分析和处理带有随机干扰的数据,直至做出科学决策。概率论与数理统计在人工智能中的作用渗透到各个方面,例如概率为人工智能提供随机性,为预测提供基础;从偏差、方差分析以更好的拟合到计算概率以实现预测等等。本实验主要运用概率论与数理统计中贝叶斯公式、几个常用分布的应用、极大似然估计、置信区间、假设检验、方差分析的理论对一些实例的应用
实验描述
本次实验数据:
blood.xlsx
包含100名女学生测定血清蛋白含量(g/L)的数据
数据路径为:/root/experiment/data/blood.xlsx
根据该样本数据求描述性统计量和对总体的极大似然估计
实验环境
-
Oracle Linux 7.4
-
Python 3
实验目的
-
基于Python实现贝叶斯公式的应用
-
基于Python实现求随机变量的期望
-
基于Python实现求几种常用分布的概率和画出概率分布图
-
基于Python实现求极大似然估计
-
基于Python实现假设检验
-
基于Python实现方差分析
知识点
-
贝叶斯公式
-
随机变量和期望
-
几种常用分布的应用
-
极大似然估计
-
假设检验
-
方差分析
实验分析
任务实施过程
一、打开Jupyter,并新建python工程
1.桌面空白处右键,点击Konsole打开一个终端
2.切换至/experiment/jupyter
目录
cd experiment/jupyter
3.启动Jupyter,root用户下运行需加–allow-root
jupyter notebook --ip=127.0.0.1 --allow-root
4.依次点击右上角的 New,Python 3新建python工程
5.点击Untitled,在弹出框中修改标题名,点击Rename确认
二、疾病诊断问题
class Bayes(object):
def __init__(self):
self._container = dict()
def Set(self,hypothis,prob):
self._container[hypothis]=prob
def Mult(self,hypothis,prob):
old_prob = self._container[hypothis]
self._container[hypothis] = old_prob*prob
def Normalize(self):
count = 0
for hypothis in self._container.values():
count=count+hypothis
# items()该方法会返回字典中所有的项
for hypothis,prob in self._container.items():
self._container[hypothis]=self._container[hypothis]/count
def Prob(self,hypothis):
Prob = self._container[hypothis]
return Prob
#实例化Bayes类
bayes = Bayes()
#先验概率
bayes.Set('A',0.0004) #P(A)=0.0004
bayes.Set('N_A',0.9996) #P(A ̅ )=0.9996
#后验概率
bayes.Mult('A',0.99) #P(B|A)=1-0.01=0.99
bayes.Mult('N_A',0.05) #P(B|A ̅ )=0.05
bayes.Normalize()
prob = bayes.Prob('A') #P(A|B)
print('检查后结果显示为阳性患肝癌的概率:{}'.format(prob))
三、求解最大经济利润问题
from sympy import integrate,symbols,diff,solve
x,a = symbols('x a')
y1 = 2*x-0.5*a
y2 = 1.5*a
# 求期望
ey = integrate(y1/200,(x,300,a))+integrate(y2/200,(x,a,500))
print('期望为',ey)
# 对期望求导
df=diff(ey,a)
# 求驻点
print('函数的驻点(或不可导点)为:',solve(df,a)[0].n(3))
# 比较驻点和端点值
print(ey.subs(a,300).n(4),ey.subs(a,450).n(4),ey.subs(a,500).n(4))
公司应该组织多少450吨货源,可使期望的利润最大。
四、二项分布的实例
向空中抛硬币100次,落下正面的概率为0.5.记正面向上的次数为𝑥
(1)计算x=45和x<45的概率
(2)给出随机数x的概率累计分布图像和概率密度折线图像。<