特征选择与稀疏学习

特征选择是机器学习预处理的关键,包括过滤式、包裹式和嵌入式方法。过滤式通过相关统计量评估,如Relief算法;包裹式直接优化学习器性能,如LVW算法;嵌入式则在训练过程中自动选择,如决策树。稀疏表示和字典学习用于简化数据,压缩感知则通过信号稀疏性实现从部分观测恢复原始信号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第十一章   特征学习与稀疏学习

https://stackedit.io/editor#

1 子集搜索与评价

  • 我们能用很多属性描述一个西瓜:色泽、根蒂、敲声、纹理、触感等!

  • 根蒂、敲声!

  • 属性 (feature)={ (relevantfeature)(irrel

### Python 中特征选择方法 在机器学习领域,特征选择是一个重要的预处理步骤。通过去除不相关或冗余的特征,模型性能可以得到显著提升。一种常见的方差阈值法可以通过 `sklearn` 库中的 `VarianceThreshold` 类来实现[^1]。 ```python from sklearn.feature_selection import VarianceThreshold # 创建一个简单的数据集用于演示 X = [[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]] selector = VarianceThreshold(threshold=0.5) selected_features = selector.fit_transform(X) print(selected_features) ``` 上述代码展示了如何利用方差筛选掉那些变化较小的特征。对于给定的数据矩阵 X ,如果某个特征列的变化程度低于设定的阈值,则该特征将被移除。 ### 基于皮尔逊相关系数的特征选择 除了基于统计量的方法外,还可以考虑使用皮尔逊相关系数来进行特征评估。这种方法衡量的是两个变量之间的线性关系强度。当计算两组样本间的 Pearson r 值接近 ±1 时表示强正负关联;而接近 0 则意味着几乎没有线性联系[^2]。 ```python import numpy as np from scipy.stats import pearsonr x = np.random.normal(0, 10, 300) y = x + np.random.normal(0, 10, 300) correlation, p_value = pearsonr(x, y) print(f"Pearson Correlation Coefficient: {correlation}") ``` 这段脚本生成了一对具有随机噪声的相关向量,并计算它们之间的确切相关度得分。 ### 稀疏表示下的特征存储优化 为了更高效地管理大型但稀疏分布的数据结构,Python 提供了多种方式支持稀疏矩阵运算。特别是 NumPy 和 SciPy 库提供了创建和操作这些特殊类型的数组的功能。下面的例子说明了一个简单场景下怎样定义并初始化一个含有少量非零元素的大规模二维表: ```python import numpy as np arr1 = np.zeros((11, 11)) arr1[1][2] = 1 arr1[2][3] = 2 arr1[3][3] = 2 arr1[4][3] = 1 sparse_representation = [(i,j,val) for i,row in enumerate(arr1) for j,val in enumerate(row) if val != 0] for item in sparse_representation: print(item) ``` 此段程序首先构建了一个全为零的方形网格,接着设置了几个特定位置上的数值。最后转换成列表形式只保留非零条目及其坐标,从而实现了紧凑表达的目的[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值