1. 通过伯努利分布产生100个实验数据
2. 假定数据服从伯努利服务
3. 通过极大似然方法进行参数估计


```python
from scipy.stats import bernoulli

# 生成实验数据
data = bernoulli.rvs(0.5, size=100)
```


```python
# 假定数据服从伯努利分布，求似然函数
# p^k(1-p)^(n-k)
# 上述数据模拟了一次实现，n为100，看下出现1的个数即k
import pandas as pd
c = pd.value_counts(data)
print(c)
```

    1    54
    0    46
    dtype: int64



```python
# 从而可以得到似然函数，然后只需要求导，得到p就达到目的了


import sympy

p = sympy.symbols('p')
d = sympy.diff(p**54*(1-p)**46, p)

sympy.solve(d, p)
```




    [0, 27/50, 1]




```python
print(27/50)
# p = 0.54
# 1-p=0.46
```

    0.54
    0.45999999999999996



```python
# 从而就得到了分布公式
# f(n,k) = 0.54**k * 0.46**(n-k)
```

0e07c4fdce30f8d8bb318e5cceeeed2c7a397e20
ipynb
Jupyter Notebook
08.NaiveBayes/01.likelihood.ipynb
haormj/ai
abf9cd7094ddc0688ed809349c05f3ce748500e4
Apache-2.0
2019-03-10T14:57:11.000Z
2019-03-10T14:57:11.000Z
08.NaiveBayes/01.likelihood.ipynb
haormj/ai
abf9cd7094ddc0688ed809349c05f3ce748500e4
Apache-2.0
08.NaiveBayes/01.likelihood.ipynb
haormj/ai
abf9cd7094ddc0688ed809349c05f3ce748500e4
Apache-2.0
Qwen/Qwen-72B
1. YES
2. YES