# Python实现贝叶斯垃圾邮件过滤器
def calculate_spam_probability(email_words):
spam_prob = 1.0
for word in email_words:
word_spam_prob = get_word_spamicity(word)
spam_prob *= word_spam_prob
return spam_prob > 0.5
# Python MLE实现示例
import numpy as np
from scipy.optimize import minimize_scalar
def neg_log_likelihood(mu, data):
return -np.sum(np.log(norm.pdf(data, mu, 1)))
result = minimize_scalar(
neg_log_likelihood,
args=(data,)
)
mle_estimate = result.x
import pandas as pd
import numpy as np
from scipy import stats
# 加载数据
data = pd.read_csv('dataset.csv')
# 描述性统计
print(data.describe())
# 正态性检验
statistic, p_value = stats.shapiro(data['values'])
print(f'Shapiro-Wilk test: p={p_value:.4f}')
# t检验
from scipy.stats import ttest_1samp
# 单样本t检验
t_stat, p_val = ttest_1samp(sample, pop_mean)
# 置信区间计算
confidence_interval = stats.t.interval(
0.95, len(sample)-1,
loc=np.mean(sample),
scale=stats.sem(sample)
)