人工智能数学底子(六):数理统计

[复制链接]
发表于 2025-9-19 07:17:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
    数理统计是人工智能中数据处置处罚和分析的焦点工具,它通过收集、分析数据来推断总体特性和规律。本文将体系介绍数理统计的根本概念和方法,并结合 Python 实例,帮助读者更好地明确和应用这些知识。资源绑定附上完备资源供读者参考学习!
6.1 概述

6.1.1 数理统计发展简史

    数理统计开端于 17 世纪,经过贝叶斯、高斯等统计学家的贡献,逐渐发展为一门成熟的学科。在现代,随着盘算机技能的发展,数理统计在人工智能、大数据等领域得到了广泛应用。
6.1.2 数理统计的重要内容

    数理统计重要包罗形貌性统计、参数估计、假设查验、回归分析等内容,用于从数据中提取信息、做出决策和猜测。
6.2 总体与样本

6.2.1 总体与样本简介

   总体是研究对象的全体,样本是从总体中抽取的一部门个体。统计分析通常基于样原来推断总体特性。
6.2.2 数据的特性

   数据的特性包罗集中趋势(均值、中位数、众数)和离散程度(方差、尺度差、极差)等。
6.2.3 统计量

   统计量是样本数据的函数,用于形貌样本特性和推断总体参数。常见的统计量有样本均值、样本方差等。
综合案例及应用:盘算样本统计量

案例形貌 :盘算一组数据的均值、方差和尺度差。
  1. import numpy as np
  2. # 数据
  3. data = np.array([12, 15, 18, 22, 25, 30, 35, 45])
  4. # 计算均值
  5. mean = np.mean(data)
  6. print("均值:", mean)
  7. # 计算方差
  8. variance = np.var(data)
  9. print("方差:", variance)
  10. # 计算标准差
  11. std_dev = np.std(data)
  12. print("标准差:", std_dev)
复制代码

6.3 参数估计

6.3.1 最大似然估计

   最大似然估计是通过最大化似然函数来估计总体参数的方法。它假设样本数据独立同分布,并探求使似然函数最大的参数值。
6.3.2 贝叶斯估计

   贝叶斯估计是基于贝叶斯定理,结合先验分布和样本数据来估计参数的后验分布。
6.3.3 点估计与矩估计

   点估计是用样本统计量估计总体参数的单个值。矩估计是通过样本矩估计总体矩,从而估计总体参数。
6.3.4 蒙特卡罗方法的根本原理

    蒙特卡罗方法是一种通过随机抽样来数值盘算的方法。它在统计、物理、金融等领域广泛应用。
综合案例及应用:最大似然估计

案例形貌 :假设某地男性身高服从正态分布,抽取 10 个样本,估计该正态分布的均值和方差。
  1. import numpy as np
  2. from scipy.optimize import minimize
  3. # 样本数据
  4. samples = np.array([170, 172, 168, 175, 173, 169, 171, 174, 167, 176])
  5. # 定义负对数似然函数(最大似然估计通常通过最小化负对数似然函数实现)
  6. def negative_log_likelihood(params):
  7.     mu, sigma = params
  8.     # 计算正态分布的概率密度函数值
  9.     pdf_values = np.exp(-((samples - mu) ** 2) / (2 * sigma ** 2)) / (sigma * np.sqrt(2 * np.pi))
  10.     # 返回负对数似然值
  11.     return -np.sum(np.log(pdf_values))
  12. # 初始参数猜测值
  13. initial_guess = [170, 5]
  14. # 进行最小化优化
  15. result = minimize(negative_log_likelihood, initial_guess, method='BFGS')
  16. # 输出结果
  17. estimated_mu, estimated_sigma = result.x
  18. print(f"最大似然估计均值:{estimated_mu:.2f}")
  19. print(f"最大似然估计标准差:{estimated_sigma:.2f}")
复制代码


6.4 假设查验

6.4.1 根本概念

    假设查验是根据样本数据对总体参数的假设做出继承或拒绝决策的过程。它包罗原假设、备择假设、查验统计量和显著性程度等。
6.4.2 Neyman-Pearson 根本引理

   Neyman-Pearson 根本引理提供了在给定显著性程度下,构造最有效查验的方法。
6.4.3 参数假设查验

   参数假设查验是对总体参数(如均值、方差)举行查验。常见的查验方法有 t 查验、z 查验等。
6.4.4 卡方查验

   卡方查验用于查验样本数据与理论分布之间的拟合程度,或查验两个分类变量之间的独立性。
综合案例及应用:单样本 t 查验

案例形貌 :某班级门生某次考试的平均成绩为 75 分,现抽取 20 王谢生的成绩,查验该班级平均成绩是否显著高于 70 分(显著性程度为 0.05)。
  1. import numpy as np
  2. from scipy import stats
  3. # 设置样本数据(这里假设了20个样本)
  4. np.random.seed(42)
  5. sample_scores = np.random.normal(loc=75, scale=10, size=20)
  6. # 原假设:班级平均成绩等于70分
  7. # 备择假设:班级平均成绩大于70分(单尾检验)
  8. mu_0 = 70
  9. # 计算t统计量和p值
  10. t_stat, p_value = stats.ttest_1samp(sample_scores, mu_0)
  11. # 因为是单尾检验,所以p值需要调整
  12. p_value_one_tailed = p_value / 2
  13. # 输出结果
  14. print(f"t统计量:{t_stat}")
  15. print(f"单尾检验p值:{p_value_one_tailed}")
  16. # 判断是否拒绝原假设
  17. alpha = 0.05
  18. if p_value_one_tailed < alpha and t_stat > 0:
  19.     print("拒绝原假设,样本均值显著大于70。")
  20. else:
  21.     print("不拒绝原假设,样本均值与70没有显著差异。")
复制代码


6.5 回归分析

6.5.1 一元线性回归

   一元线性回归用于研究一个自变量与一个因变量之间的线性关系。通过最小二乘法估计回归系数。
6.5.2 可化为一元线性回归的非线性回归

    某些非线性回归可以通过变量变动转化为线性回归题目,如对数变动、倒数变动等。
6.5.3 多元线性回归

    多元线性回归研究多个自变量与一个因变量之间的线性关系。通过矩阵运算估计回归系数。
综合案例及应用:一元线性回归

案例形貌 :分析广告投入与贩卖额之间的关系,创建一元线性回归模子,并猜测广告投入为 30 万元时的贩卖额。
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from sklearn.linear_model import LinearRegression
  4. plt.rcParams['font.sans-serif'] = ['SimHei']
  5. plt.rcParams['axes.unicode_minus'] = False
  6. # 广告投入和销售额数据
  7. advertising = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).reshape(-1, 1)
  8. sales = np.array([2, 3, 5, 7, 8, 10, 12, 15, 17, 19])
  9. # 创建线性回归模型并拟合数据
  10. model = LinearRegression()
  11. model.fit(advertising, sales)
  12. # 回归系数和截距
  13. coefficient = model.coef_[0]
  14. intercept = model.intercept_
  15. print(f"回归系数(斜率):{coefficient}")
  16. print(f"截距:{intercept}")
  17. # 预测广告投入为30万元时的销售额
  18. predicted_sales = model.predict(np.array([[30]]))
  19. print(f"广告投入为30万元时的预测销售额:{predicted_sales[0]:.2f}")
  20. # 绘制回归直线
  21. plt.scatter(advertising, sales, color='blue', label='实际数据点')
  22. plt.plot(advertising, model.predict(advertising), color='red', label='回归直线')
  23. plt.xlabel('广告投入(万元)')
  24. plt.ylabel('销售额(万元)')
  25. plt.title('广告投入与销售额的一元线性回归分析')
  26. plt.legend()
  27. plt.grid(True)
  28. plt.show()
复制代码


6.6 实验:基于 Python 实现用蒙特卡罗方法求圆周率

6.6.1 实验目的

   通过蒙特卡罗方法近似盘算圆周率 π 的值,明确随机抽样在数值盘算中的应用。
6.6.2 实验要求

    使用 Python 实现蒙特卡罗方法,模拟随机点在单位正方形和单位圆内的分布,盘算 π 的近似值。
6.6.3 实验原理

    在单位正方形内随机天生大量点,统计落在单位圆内的点数。根据几何概率,圆内点数与总点数之比近似即是圆面积与正方形面积之比(π/4)。
6.6.4 实验步调


  •         天生大量随机点(x, y),此中 x 和 y 均在 [0, 1) 范围内。
  •         判断每个点是否落在单位圆内(x² + y² ≤ 1)。
  •         统计圆内点数和总点数。
  •         根据比例盘算 π 的近似值。
6.6.5 实验结果
  1. import numpy as np
  2. # 设置随机种子以确保结果可重复
  3. np.random.seed(42)
  4. # 总模拟次数
  5. total_simulations = 1000000
  6. # 生成随机点
  7. x_random = np.random.rand(total_simulations)
  8. y_random = np.random.rand(total_simulations)
  9. # 判断点是否在单位圆内
  10. distances_squared = x_random**2 + y_random**2
  11. points_inside_circle = distances_squared <= 1
  12. # 计算圆周率近似值
  13. pi_estimate = 4 * np.sum(points_inside_circle) / total_simulations
  14. print(f"蒙特卡罗方法估计的圆周率值({total_simulations}次模拟):{pi_estimate}")
复制代码


6.7数理统计总结

概念界说与分析常见应用总体与样本总体是研究对象的全体,样本是总体的一部门样本均值、方差,统计推断参数估计通过样本估计总体参数的方法最大似然估计,贝叶斯估计,矩估计假设查验根据样本数据查验总体参数的假设t查验,z查验,卡方查验回归分析研究变量间关系的统计方法一元线性回归,多元线性回归,非线性回归   通过本文的学习,盼望各人对数理统计在人工智能中的应用有了更深入的明确。在实际利用中,多举行代码练习,可以更好地掌握这些数学工具,为人工智能的学习和实践打下坚固的底子。资源绑定附上完备资源供读者参考学习!



回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表