Python | NumPy | 概率 | 建模 | 算法 | 统计 | scikit-learn | PyTorch | TensorFlow | 数学 | 线性代数 | 无参数模型 | 神经网络 | 贝叶斯决策论 | 信自论 | 逻辑回归 | 线性回归
🏈指点迷津 | Brief要点
Python概率论,衡量一个或多个变量相互依赖性,从数据中学习概率模型参数,贝叶斯决策论,信息论,线性代数和优化
Python线性判别分析分类模型,逻辑回归,线性回归,广义线性模型
朴素贝叶斯分类器示例概率学习
在机器学习的广阔领域中,概率学习开辟了自己独特的空间。 在统计和概率的驱动下,概率学习侧重于对数据中存在的不确定性进行建模。 它提供了一个视角,强调大多数数据源固有的潜在随机性和可变性。
概率学习模型与确定性模型的不同之处在于,它们提供的预测是一组结果的概率分布,而不是单个确定的输出。 这种细致入微的方法具有巨大的价值,特别是在面临可用信息不完整、有噪音或不确定的情况时。
在本段,我们将全面了解概率学习的概念,探索其关键算法,然后通过朴素贝叶斯分类器的 Python 实践示例说明其实现。
概率学习是机器学习的一个子领域,其中算法根据可能结果的概率分布进行预测,而不是精确指出单个最可能的结果。 它提供了从决定论到不确定性的根本转变,一种更适合世界复杂而嘈杂的现实的观点。
想象一个场景,我们有一个患者数据集,我们想要预测他们是否患有某种特定疾病。 在确定性学习方法中,我们可以构建一个决策树,根据各种症状预测“是”或“否”。 然而,疾病和症状很少是二元的——没有症状并不一定意味着一个人没有疾病,而有症状并不能保证一定有病。
相反,概率学习模型将输出可能结果的概率分布。 例如,它可能会说这个人有 70% 的可能性患有这种疾病,而有 30% 的可能性没有。 这种概率输出为数据和预测提供了更丰富的视角,提供了模型不确定性的量化。
概率学习模型特点:
朴素贝叶斯分类器:
朴素贝叶斯分类器是基于贝叶斯定理的最直接、最强大的分类算法之一,并假设预测变量之间独立。 该模型易于构建,对于大型数据集特别有用。 尽管朴素贝叶斯很简单,但其性能优于更复杂的分类方法。 让我们使用 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]
输出:
male female Height_Mean 5.849935.40447 Weight_Mean 176.834132.461 Foot_Size_Mean 11.22067.42694 Height_Variance 0.03993250.0381307 Weight_Variance 373.367377.808 Foot_Size_Variance 0.9385270.884844
提供的表格包含根据我们创建的每类 500 个条目的数据集,从男性和女性群体中计算出的三个特征的统计数据(均值和方差):身高、体重和脚尺寸。
应用贝叶斯定理
概率模型
机器学习可视化示例框架
单变量模型:随机变量、贝叶斯规则、伯努利分布和二项分布、分类分布和多项分布、单变量高斯(正态)分布、一些其他常见的单变量分布、随机变量的变换
多变量模型:多个随机变量的联合分布、多元高斯(正态)分布 线性高斯系统、指数族、混合模型、概率图模型
统计:最大似然估计 (MLE) 、经验风险最小化 (ERM)、其他估计方法、正则化、贝叶斯统计、频率统计
决策论:贝叶斯决策理论、选择“正确”模型、频率派决策理论、经验风险最小化 、频率派假设检验
信息论:熵、相对熵(KL 散度)、互信息
线性代数:矩阵乘法、矩阵求逆、特征值分解 (EVD) 、奇异值分解 (SVD)、其他矩阵分解、求解线性方程组、矩阵微积分
优化: 一阶方法、二阶方法、随机梯度下降、约束优化、近端梯度法、有界优化、黑盒和无导数优化
线性模型
线性判别分析:高斯判别分析,朴素贝叶斯分类器,生成分类器与判别分类器
逻辑回归:二元逻辑回归,多项逻辑回归,稳健逻辑回归,贝叶斯逻辑回归
线性回归:最小二乘线性回归 , 岭回归 , Lasso 回归 , 回归样条 , 稳健线性回归, 贝叶斯线性回归
广义线性模型:具有非规范链接函数的 GLM 示例,最大似然估计,示例:预测保险索赔
深度神经网络
结构化数据的神经网络: 多层感知器 (MLP) , 反向传播 , 训练神经网络 , 正则化 , 其他类型的前馈网络
图像神经网络:通用层 , 图像分类的通用架构 , 其他形式的卷积 , 使用 CNN 解决其他判别性视觉任务, 通过反转 CNN 生成图像
序列神经网络:循环神经网络 (RNN) , 1d CNN , 注意力 , 变换器 , 高效变换器 , 语言模型和无监督表示学习
无参数模型
基于样本的方法:K 最近邻 (KNN) 分类 , 学习距离度量 , 核密度估计 (KDE)
核方法:Mercer 核 , 高斯过程 , 支持向量机 (SVM) , 稀疏向量机
树、森林、Bagging 和 Boosting:分类和回归树 (CART) , 集成学习 Bagging 随机森林 , Boosting , 解释树集成