首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
4.1 分类变量
4.1.1 One-Hot 编码(虚拟变量)
4.1.2 数字可以编码分类变量
4.2 分箱、离散化、线性模型与树
4.3 交互特征与多项式特征
4.4 单变量非线性变换
4.5 自动化特征选择
4.5.1 单变量统计
4.5.2 基于模型的特征选择
4.5.3 迭代特征选择
4.6 利用专家知识
5.1 交叉验证
5.1.1 scikit-learn 中的交叉验证
5.1.2 交叉验证的优点
5.1.3 分层k 折交叉验证和其他策略
5.2 网格搜索
5.2.1 简单网格搜索
5.2.2 参数过拟合的风险与验证集
5.2.3 带交叉验证的网格搜索
5.3 评估指标与评分
5.3.1 牢记目标
5.3.2 二分类指标
5.3.3 多分类指标
5.3.4 回归指标
5.3.5 在模型选择中使用评估指标
6.1 用预处理进行参数选择
6.2 构建管道
6.3 在网格搜索中使用管道
6.4 通用的管道接口
6.4.1 用make_pipeline 方便地创建管道
6.4.2 访问步骤属性
6.4.3 访问网格搜索管道中的属性
6.5 网格搜索预处理步骤与模型参数
6.6 网格搜索选择使用哪个模型
7.1 用字符串表示的数据类型
7.2 示例应用:电影评论的情感分析
7.3 将文本数据表示为词袋
7.3.1 将词袋应用于玩具数据集
7.3.2 将词袋应用于电影评论
7.4 停用词
7.5 用tf-idf 缩放数据
7.6 研究模型系数
7.7 多个单词的词袋(n元分词)
7.8 分词、词干提取与词形还原
7.9 主题建模与文档聚类
8.1 处理机器学习问题
8.2 从原型到生产
8.3 测试生产系统
8.4 构建你自己的估计器
8.5 下一步怎么走
8.5.1 理论
8.5.2 其他机器学习框架和包
8.5.3 排序、推荐系统与其他学习类型
8.5.4 概率建模、推断与概率编程
8.5.5 神经网络
8.5.6 推广到更大的数据集
当前位置:
首页>>
技术小册>>
Python机器学习基础教程(下)
小册名称:Python机器学习基础教程(下)
### 4.5.1 单变量统计 在Python机器学习领域,理解数据的基本统计特性是构建有效模型的关键第一步。单变量统计,即针对数据集中单一变量的统计分析,是这一过程中的基石。它不仅帮助我们识别数据的中心趋势、分散程度以及分布形态,还为后续的数据预处理、特征选择和模型训练提供重要依据。本章将深入探讨单变量统计的基本概念、常用方法及其在Python中的实现。 #### 4.5.1.1 引言 单变量统计分析是统计学的一个分支,专注于单个变量(如年龄、身高、温度等)的数值描述和分析。通过单变量分析,我们可以获得该变量的中心位置(如均值、中位数)、分散程度(如方差、标准差)以及分布形状(如偏度、峰度)等信息,这些信息对于理解数据的内在规律至关重要。 #### 4.5.1.2 中心趋势 **1. 均值(Mean)** 均值是所有观测值的算术平均数,是衡量数据集中心的最常用指标。在Python中,使用NumPy库可以轻松计算均值。 ```python import numpy as np # 假设data是一个包含数值的NumPy数组 data = np.array([1, 2, 3, 4, 5]) mean_value = np.mean(data) print(f"Mean: {mean_value}") ``` **2. 中位数(Median)** 中位数是将数据集分为两个相等部分的数值,当数据中存在极端值时,中位数比均值更能代表数据的中心趋势。 ```python median_value = np.median(data) print(f"Median: {median_value}") ``` **3. 众数(Mode)** 众数是数据集中出现次数最多的值。在Python中,SciPy库提供了计算众数的函数。 ```python from scipy import stats mode_value = stats.mode(data)[0][0] print(f"Mode: {mode_value}") ``` #### 4.5.1.3 分散程度 **1. 方差(Variance)** 方差是每个观测值与均值之差的平方的平均数,用于量化数据与其均值的偏离程度。 ```python variance = np.var(data) print(f"Variance: {variance}") ``` **2. 标准差(Standard Deviation)** 标准差是方差的平方根,与方差一样,用于衡量数据的离散程度,但标准差具有与原始数据相同的单位。 ```python std_dev = np.std(data) print(f"Standard Deviation: {std_dev}") ``` #### 4.5.1.4 分布形态 **1. 偏度(Skewness)** 偏度用于描述数据分布的偏斜方向和程度。正偏态分布表示数据右偏,负偏态分布表示数据左偏。 ```python # 使用SciPy库计算偏度 skewness = stats.skew(data) print(f"Skewness: {skewness}") ``` **2. 峰度(Kurtosis)** 峰度用于描述数据分布的尖峭或扁平程度,与正态分布(峰度为0)相比,高峰度表示数据更集中于均值附近,低峰度则表示数据更分散。 ```python # 使用SciPy库计算峰度,注意:SciPy的峰度计算与某些统计软件(如Excel)的定义不同,可能需要调整 kurtosis = stats.kurtosis(data, fisher=False) print(f"Kurtosis: {kurtosis}") ``` #### 4.5.1.5 直方图与概率密度函数 直方图是展示数据分布形态的一种直观方式,通过将数据划分为若干区间(即“桶”),并统计每个区间内的观测值数量来绘制。Python中的Matplotlib库可以方便地绘制直方图。 ```python import matplotlib.pyplot as plt plt.hist(data, bins=5, edgecolor='black') plt.title('Histogram of Data') plt.xlabel('Value') plt.ylabel('Frequency') plt.show() ``` 对于连续变量,我们还可以估计其概率密度函数(PDF),虽然实际中我们通常通过样本数据来估计总体分布,但PDF为我们提供了一个理论上的视角来理解数据的分布形态。 ```python # 使用SciPy的norm.pdf函数(假设数据服从正态分布)来估计PDF # 注意:这里仅为示例,实际中应根据数据选择合适的分布 from scipy.stats import norm x = np.linspace(min(data)-1, max(data)+1, 100) y = norm.pdf(x, mean_value, std_dev) plt.plot(x, y, 'r-', lw=2) plt.title('Estimated PDF of Data') plt.xlabel('Value') plt.ylabel('Probability Density') plt.show() ``` #### 4.5.1.6 实际应用与注意事项 单变量统计分析在机器学习项目中有着广泛的应用。例如,在数据预处理阶段,我们可以通过分析单变量的统计特性来识别并处理异常值(如使用IQR规则)、进行特征缩放(如标准化或归一化)以提高模型性能。然而,在应用单变量统计分析时,也需注意以下几点: - **数据类型**:确保分析的是数值型数据,对于分类数据,应采用不同的分析方法(如频率分布表)。 - **样本量**:小样本量可能导致统计量的估计不准确,尤其是在计算方差、标准差等涉及平方运算的统计量时。 - **数据分布**:不同分布的数据可能需要不同的统计方法或参数调整,如偏度和峰度的计算在不同分布假设下可能有所不同。 - **上下文理解**:统计分析结果应结合具体业务背景进行解读,避免脱离实际意义的机械分析。 综上所述,单变量统计作为数据探索与预处理的重要工具,在Python机器学习项目中扮演着不可或缺的角色。通过深入理解并熟练掌握这些基本概念和方法,我们可以更有效地分析数据、发现规律并为后续的模型构建奠定坚实基础。
上一篇:
4.5 自动化特征选择
下一篇:
4.5.2 基于模型的特征选择
该分类下的相关小册推荐:
Python合辑2-字符串常用方法
实战Python网络爬虫
Python甚础Django与爬虫
Python神经网络入门与实践
机器学习算法原理与实战
Python编程轻松进阶(四)
Python高并发编程与实战
Python高性能编程与实战
Python编程轻松进阶(一)
Python合辑11-闭包函数
Python合辑4-130个字符串操作示例
Python合辑1-Python语言基础