🫐Python概率建模算法和图示

Python | NumPy | 概率 | 建模 | 算法 | 统计 | scikit-learn | PyTorch | TensorFlow | 数学 | 线性代数 | 无参数模型 | 神经网络 | 贝叶斯决策论 | 信自论 | 逻辑回归 | 线性回归

🏈page指点迷津 | Brief

要点

  1. Python朴素贝叶斯分类器解释概率学习示例

  2. Python概率论,衡量一个或多个变量相互依赖性,从数据中学习概率模型参数,贝叶斯决策论,信息论,线性代数和优化

  3. Python线性判别分析分类模型,逻辑回归,线性回归,广义线性模型

  4. Python结构化数据,图像和序列神经网络

朴素贝叶斯分类器示例概率学习

在机器学习的广阔领域中,概率学习开辟了自己独特的空间。 在统计和概率的驱动下,概率学习侧重于对数据中存在的不确定性进行建模。 它提供了一个视角,强调大多数数据源固有的潜在随机性和可变性。

概率学习模型与确定性模型的不同之处在于,它们提供的预测是一组结果的概率分布,而不是单个确定的输出。 这种细致入微的方法具有巨大的价值,特别是在面临可用信息不完整、有噪音或不确定的情况时。

在本段,我们将全面了解概率学习的概念,探索其关键算法,然后通过朴素贝叶斯分类器的 Python 实践示例说明其实现。

概率学习是机器学习的一个子领域,其中算法根据可能结果的概率分布进行预测,而不是精确指出单个最可能的结果。 它提供了从决定论到不确定性的根本转变,一种更适合世界复杂而嘈杂的现实的观点。

想象一个场景,我们有一个患者数据集,我们想要预测他们是否患有某种特定疾病。 在确定性学习方法中,我们可以构建一个决策树,根据各种症状预测“是”或“否”。 然而,疾病和症状很少是二元的——没有症状并不一定意味着一个人没有疾病,而有症状并不能保证一定有病。

相反,概率学习模型将输出可能结果的概率分布。 例如,它可能会说这个人有 70% 的可能性患有这种疾病,而有 30% 的可能性没有。 这种概率输出为数据和预测提供了更丰富的视角,提供了模型不确定性的量化。

概率学习模型特点:

  1. 概率模型优雅地处理不确定性

  2. 概率预测可以提供更多信息

  3. 概率模型允许更丰富的模型比较

朴素贝叶斯分类器:

朴素贝叶斯分类器是基于贝叶斯定理的最直接、最强大的分类算法之一,并假设预测变量之间独立。 该模型易于构建,对于大型数据集特别有用。 尽管朴素贝叶斯很简单,但其性能优于更复杂的分类方法。 让我们使用 Python 从头开始创建一个朴素贝叶斯分类器,以便更好地理解其内部机制。

import numpy as np
import pandas as pd

# Set a seed so that the results are reproducible
np.random.seed(0)

# Number of samples per class
n_samples = 500

# Generate synthetic heights
male_heights = np.random.normal(5.855, 0.2, n_samples)
female_heights = np.random.normal(5.4175, 0.2, n_samples)

# Generate synthetic weights
male_weights = np.random.normal(176.25, 20, n_samples)
female_weights = np.random.normal(132.5, 20, n_samples)

# Generate synthetic foot sizes
male_foot_sizes = np.random.normal(11.25, 1, n_samples)
female_foot_sizes = np.random.normal(7.5, 1, n_samples)

# Create dataframes for each gender
male_df = pd.DataFrame({
    'Height': male_heights,
    'Weight': male_weights,
    'Foot_Size': male_foot_sizes,
    'Gender': 'male'
})

female_df = pd.DataFrame({
    'Height': female_heights,
    'Weight': female_weights,
    'Foot_Size': female_foot_sizes,
    'Gender': 'female'
})


# Means for male
male_height_mean = data_means['Height'][data_variance.index == 'male'].values[0]
male_weight_mean = data_means['Weight'][data_variance.index == 'male'].values[0]
male_footsize_mean = data_means['Foot_Size'][data_variance.index == 'male'].values[0]

# Variance for male
male_height_variance = data_variance['Height'][data_variance.index == 'male'].values[0]
male_weight_variance = data_variance['Weight'][data_variance.index == 'male'].values[0]
male_footsize_variance = data_variance['Foot_Size'][data_variance.index == 'male'].values[0]

# Means for female
female_height_mean = data_means['Height'][data_variance.index == 'female'].values[0]
female_weight_mean = data_means['Weight'][data_variance.index == 'female'].values[0]
female_footsize_mean = data_means['Foot_Size'][data_variance.index == 'female'].values[0]

# Variance for female
female_height_variance = data_variance['Height'][data_variance.index == 'female'].values[0]
female_weight_variance = data_variance['Weight'][data_variance.index == 'female'].values[0]
female_footsize_variance = data_variance['Foot_Size'][data_variance.index == 'female'].values[0]

输出:

 Height_Mean  Weight_Mean  Foot_Size_Mean  Height_Variance  Weight_Variance  Foot_Size_Variance  male 5.84993176.83411.22060.0399325373.3670.938527 female 5.40447132.4617.426940.0381307377.8080.884844 \begin{array}{|c|c|c|c|c|c|c|} \hline & \text { Height\_Mean } & \text { Weight\_Mean } & \text { Foot\_Size\_Mean } & \text { Height\_Variance } & \text { Weight\_Variance } & \text { Foot\_Size\_Variance } \\ \hline \text { male } & 5.84993 & 176.834 & 11.2206 & 0.0399325 & 373.367 & 0.938527 \\ \hline \text { female } & 5.40447 & 132.461 & 7.42694 & 0.0381307 & 377.808 & 0.884844 \\ \hline \end{array}

提供的表格包含根据我们创建的每类 500 个条目的数据集,从男性和女性群体中计算出的三个特征的统计数据(均值和方差):身高、体重和脚尺寸。

应用贝叶斯定理

概率模型

机器学习可视化示例框架

单变量模型:随机变量、贝叶斯规则、伯努利分布和二项分布、分类分布和多项分布、单变量高斯(正态)分布、一些其他常见的单变量分布、随机变量的变换

多变量模型:多个随机变量的联合分布、多元高斯(正态)分布 线性高斯系统、指数族、混合模型、概率图模型

统计:最大似然估计 (MLE) 、经验风险最小化 (ERM)、其他估计方法、正则化、贝叶斯统计、频率统计

决策论:贝叶斯决策理论、选择“正确”模型、频率派决策理论、经验风险最小化 、频率派假设检验

信息论:熵、相对熵(KL 散度)、互信息

线性代数:矩阵乘法、矩阵求逆、特征值分解 (EVD) 、奇异值分解 (SVD)、其他矩阵分解、求解线性方程组、矩阵微积分

优化: 一阶方法、二阶方法、随机梯度下降、约束优化、近端梯度法、有界优化、黑盒和无导数优化

线性模型

线性判别分析:高斯判别分析,朴素贝叶斯分类器,生成分类器与判别分类器

逻辑回归:二元逻辑回归,多项逻辑回归,稳健逻辑回归,贝叶斯逻辑回归

线性回归:最小二乘线性回归 , 岭回归 , Lasso 回归 , 回归样条 , 稳健线性回归, 贝叶斯线性回归

广义线性模型:具有非规范链接函数的 GLM 示例,最大似然估计,示例:预测保险索赔

深度神经网络

结构化数据的神经网络: 多层感知器 (MLP) , 反向传播 , 训练神经网络 , 正则化 , 其他类型的前馈网络

图像神经网络:通用层 , 图像分类的通用架构 , 其他形式的卷积 , 使用 CNN 解决其他判别性视觉任务, 通过反转 CNN 生成图像

序列神经网络:循环神经网络 (RNN) , 1d CNN , 注意力 , 变换器 , 高效变换器 , 语言模型和无监督表示学习

无参数模型

基于样本的方法:K 最近邻 (KNN) 分类 , 学习距离度量 , 核密度估计 (KDE)

核方法:Mercer 核 , 高斯过程 , 支持向量机 (SVM) , 稀疏向量机

树、森林、Bagging 和 Boosting:分类和回归树 (CART) , 集成学习 Bagging 随机森林 , Boosting , 解释树集成

Last updated