机器学习入门|特征选择

简介: 运用机器学习算法时由于初始数据集的各种问题,往往需要进行预处理,特征选择通常也作为预处理的一种,用于剔除无关特征,减少特征维度,减小维度灾难的问题。

运用机器学习算法时由于初始数据集的各种问题,往往需要进行预处理,特征选择通常也作为预处理的一种,用于剔除无关特征,减少特征维度,减小维度灾难的问题。举个例子的话,在评估某市的房价时,房价和地段、交通、城市区域等因素关系密切,但与街道名字这种因素就可能完全没有关系,需要去除掉。

根据《机器学习》的内容粗略做一下笔记。

过滤式选择(relief)

如果用一个量值来表示一个特征与样本是否有关,让与样本相关度高的特征的这个值比相关度低的大。我们可以这样考虑:

如果某个特征与样本相关度高,那么同类样本的此特征差异普遍较小,而不同类别的样本此特征差异普遍较大;反之如果相关度低,那么同类样本与不同类样本之间的差异普遍不明显。那么可以根据此性质,用猜对的最近邻$x_{i,nm}$(猜中近邻)和猜错的最近邻$x_{i,nm}$(猜错近邻)两个样本来代表所有样本

对于特征j的统计分量为:

$$ \delta^{j}=\sum_{i}-diff(x_{i}^{j},x_{i,nh}^{j})^{2}+diff(x_{i}^{j},x_{i,nm}^{j})^{2} $$

其中$diff(a,b)$对于离散型数据,a,b相同为0,不同为1,对于连续性数据,表示规范化(归一化)后的a,b距离。

判断特征是否相关时,可以设置阈值$\tau$筛选,或者指定取k个最相关的特征。

此算法只适合二分类问题,多分类问题需要进行调整为:

$$ \delta^{j}=\sum_{i}-diff(x_{i}^{j},x_{i,nh}^{j})^{2}+\sum_{l\neq k}\left(p_{l}*diff(x_{i}^{j},x_{i,l,nm}^{j})^{2}\right) $$

其中$p_{l}$为第l类样本在数据集中的比例。

包裹式选择

通过最终学习器得到的结果来决定特征选择,时间开销大,需要采用适当停止策略。

随机选择特征子集,用交叉验证计算误差,把误差更小或者误差近似但特征数更少的特征子集保留下来。

子集搜索采用随机策略(拉斯维加斯方法)

嵌入式选择

与用于预处理的特征选择不同,嵌入式选择是与机器学习算法结合在一起的,在执行算法的过程中同时完成特征选择。

如果解的特征矩阵有许多0解,可以使一些特征的权重为 0,即得到稀疏解。使用$L_{1}$范数的正则化可以减少非零解的数量,就间接的进行了特征选择的过程。

给自己记一下之后应该会用到的重点,稀疏表示

目录
相关文章
|
3月前
|
机器学习/深度学习 数据采集 算法
深入了解机器学习:从入门到应用
【10月更文挑战第6天】深入了解机器学习:从入门到应用
|
1月前
|
机器学习/深度学习 传感器 运维
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
81 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
|
2月前
|
机器学习/深度学习 数据采集
机器学习入门——使用Scikit-Learn构建分类器
机器学习入门——使用Scikit-Learn构建分类器
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
52 2
|
2月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
40 1
|
2月前
|
机器学习/深度学习 数据可视化 算法
机器学习中的特征选择与降维技术
机器学习中的特征选择与降维技术
100 0
|
2月前
|
机器学习/深度学习 数据采集 人工智能
机器学习入门:Python与scikit-learn实战
机器学习入门:Python与scikit-learn实战
77 0
|
2月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
46 0
|
3月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
32 1
|
3月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型选择与训练、模型评估及交叉验证等关键步骤。通过本文,初学者可以快速上手并掌握机器学习的基本技能。
83 2