常见降维技术对比:保持信息完整性下降低数据维度的可行性分析

本文将比较各种降维技术机器学习任务中对表格数据的有效性。我们将降维方法应用于数据集,并通过回归和分类分析评估其有效性。我们将降维方法应用于从与不同领域相关的 UCI 中获取的各种数据集。总共选择了 15 个数据集,其中 7 个将用于回归,8 个用于分类。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

常见的降维技术比较:能否在不丢失信息的情况下降低数据维度

为了使本文易于阅读和理解,仅显示了一个数据集的预处理和分析。实验从加载数据集开始。数据集被分成训练集和测试集,然后在均值为 0 且标准差为 1 的情况下进行标准化。

然后会将降维技术应用于训练数据,并使用相同的参数对测试集进行变换以进行降维。对于回归,使用主成分分析(PCA)和奇异值分解(SVD)进行降维,另一方面对于分类,使用线性判别分析(LDA)

降维后就训练多个机器学习模型进行测试,并比较了不同模型在通过不同降维方法获得的不同数据集上的性能。

数据处理

让我们通过加载第一个数据集开始这个过程,

import pandas as pd ## for data manipulationdf = pd.read_excel(r'RegressionAirQualityUCI.xlsx')print(df.shape)df.head()

常见的降维技术比较:能否在不丢失信息的情况下降低数据维度

数据集包含15个列,其中一个是需要预测标签。在继续降维之前,日期和时间列也会被删除。

X = df.drop(['CO(GT)', 'Date', 'Time'], axis=1)y = df['CO(GT)']X.shape, y.shape#Output: ((9357, 12), (9357,))

为了训练,我们需要将数据集划分为训练集和测试集,这样可以评估降维方法和在降维特征空间上训练的机器学习模型的有效性。模型将使用训练集进行训练,性能将使用测试集进行评估。

from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)X_train.shape, X_test.shape, y_train.shape, y_test.shape#Output: ((7485, 12), (1872, 12), (7485,), (1872,))

在对数据集使用降维技术之前,可以对输入数据进行缩放,这样可以保证所有特征处于相同的比例上。这对于线性模型来说是是至关重要的,因为某些降维方法可以根据数据是否标准化以及对特征的大小敏感而改变其输出。

from sklearn.preprocessing import StandardScalerscaler = StandardScaler()X_train = scaler.fit_transform(X_train)X_test = scaler.transform(X_test)X_train.shape, X_test.shape

主成分分析(PCA)

线性降维的PCA方法降低了数据的维数,同时保留了尽可能多的数据方差。

这里将使用Python sklearn.decomposition模块的PCA方法。要保留的组件数量是通过这个参数指定的,这个数字会影响在较小的特征空间中包含多少维度。作为一种替代方法,我们可以设定要保留的目标方差,它根据捕获的数据中的方差量建立组件的数量,我们这里设置为0.95

from sklearn.decomposition import PCApca = PCA(n_compnotallow=0.95)X_train_pca = pca.fit_transform(X_train)X_test_pca = pca.transform(X_test)X_train_pca

常见的降维技术比较:能否在不丢失信息的情况下降低数据维度

上述特征代表什么?主成分分析(PCA)将数据投射到低维空间,试图尽可能多地保留数据中的不同之处。虽然这可能有助于特定的操作,但也可能使数据更难以理解。,PCA可以识别数据中的新轴,这些轴是初始特征的线性融合。

奇异值分解(SVD)

SVD是一种线性降维技术,它将数据方差较小的特征投影到低维空间。我们需要设置降维后要保留的组件数量。这里我们将把维度降低 2/3。

from sklearn.decomposition import TruncatedSVDsvd = TruncatedSVD(n_compnotallow=int(X_train.shape[1]*0.33))X_train_svd = svd.fit_transform(X_train)X_test_svd = svd.transform(X_test)X_train_svd

常见的降维技术比较:能否在不丢失信息的情况下降低数据维度

训练回归模型

现在,我们将开始使用上述三种数据(原始数据集、PCA和SVD)对模型进行训练和测试,并且我们使用多个模型进行对比。

import numpy as npfrom sklearn.linear_model import LinearRegressionfrom sklearn.neighbors import KNeighborsRegressorfrom sklearn.svm import SVRfrom sklearn.tree import DecisionTreeRegressorfrom sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressorfrom sklearn.metrics import r2_score, mean_squared_errorimport time

train_test_ML:这个函数将完成与模型的训练和测试相关的重复任务。通过计算rmse和r2_score来评估所有模型的性能。并返回包含所有详细信息和计算值的数据集,还将记录每个模型在各自的数据集上训练和测试所花费的时间。

def train_test_ML(dataset, dataform, X_train, y_train, X_test, y_test):temp_df = pd.DataFrame(columns=['Data Set', 'Data Form', 'Dimensions', 'Model', 'R2 Score', 'RMSE', 'Time Taken'])for i in [LinearRegression, KNeighborsRegressor, SVR, DecisionTreeRegressor, RandomForestRegressor, GradientBoostingRegressor]:start_time = time.time()reg = i().fit(X_train, y_train)y_pred = reg.predict(X_test)r2 = np.round(r2_score(y_test, y_pred), 2)rmse = np.round(np.sqrt(mean_squared_error(y_test, y_pred)), 2)end_time = time.time()time_taken = np.round((end_time - start_time), 2)temp_df.loc[len(temp_df)] = [dataset, dataform, X_train.shape[1], str(i).split('.')[-1][:-2], r2, rmse, time_taken]return temp_df

原始数据:

original_df = train_test_ML('AirQualityUCI', 'Original', X_train, y_train, X_test, y_test)original_df

常见的降维技术比较:能否在不丢失信息的情况下降低数据维度

可以看到KNN回归器和随机森林在输入原始数据时表现相对较好,随机森林的训练时间是最长的。

PCA

pca_df = train_test_ML('AirQualityUCI', 'PCA Reduced', X_train_pca, y_train, X_test_pca, y_test)pca_df

常见的降维技术比较:能否在不丢失信息的情况下降低数据维度

与原始数据集相比,不同模型的性能有不同程度的下降。梯度增强回归和支持向量回归在两种情况下保持了一致性。这里一个主要的差异也是预期的是模型训练所花费的时间。与其他模型不同的是,SVR在这两种情况下花费的时间差不多。

表单大师AI 表单大师AI

一款基于自然语言处理技术的智能在线表单创建工具,可以帮助用户快速、高效地生成各类专业表单。

表单大师AI 221 查看详情 表单大师AI

SVD

svd_df = train_test_ML('AirQualityUCI', 'SVD Reduced', X_train_svd, y_train, X_test_svd, y_test)svd_df

常见的降维技术比较:能否在不丢失信息的情况下降低数据维度

与PCA相比,SVD以更大的比例降低了维度,随机森林和梯度增强回归器的表现相对优于其他模型。

回归模型分析

对于这个数据集,使用主成分分析时,数据维数从12维降至5维,使用奇异值分析时,数据降至3维。

就机器学习性能而言,数据集的原始形式相对更好。造成这种情况的一个潜在原因可能是,当我们使用这种技术降低维数时,在这个过程中会发生信息损失。但是线性回归、支持向量回归和梯度增强回归在原始和PCA案例中的表现是一致的。在我们通过SVD得到的数据上,所有模型的性能都下降了。在降维情况下,由于特征变量的维数较低,模型所花费的时间减少了。

将类似的过程应用于其他六个数据集进行测试,得到以下结果:

常见的降维技术比较:能否在不丢失信息的情况下降低数据维度

我们在各种数据集上使用了SVD和PCA,并对比了在原始高维特征空间上训练的回归模型与在约简特征空间上训练的模型的有效性

原始数据集始终优于由降维方法创建的低维数据。这说明在降维过程中可能丢失了一些信息。当用于更大的数据集时,降维方法有助于显著减少数据集中的特征数量,从而提高机器学习模型的有效性。对于较小的数据集,改影响并不显著。模型的性能在original和pca_reduced两种模式下保持一致。如果一个模型在原始数据集上表现得更好,那么它在PCA模式下也会表现得更好。同样,较差的模型也没有得到改进。在SVD的情况下,模型的性能下降比较明显。这可能是n_components数量选择的问题,因为太小数量肯定会丢失数据。决策树在SVD数据集时一直是非常差的,因为它本来就是一个弱学习器

训练分类模型

对于分类我们将使用另一种降维方法:LDA。机器学习和模式识别任务经常使用被称为线性判别分析(LDA)的降维方法。这种监督学习技术旨在最大化几个类或类别之间的距离,同时将数据投影到低维空间。由于它的作用是最大化类之间的差异,因此只能用于分类任务。

from sklearn.linear_model import LogisticRegressionfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.svm import SVCfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifierfrom sklearn.metrics import accuracy_score, f1_score, recall_score, precision_score

继续我们的训练方法

def train_test_ML2(dataset, dataform, X_train, y_train, X_test, y_test):temp_df = pd.DataFrame(columns=['Data Set', 'Data Form', 'Dimensions', 'Model', 'Accuracy', 'F1 Score', 'Recall', 'Precision', 'Time Taken'])for i in [LogisticRegression, KNeighborsClassifier, SVC, DecisionTreeClassifier, RandomForestClassifier, GradientBoostingClassifier]:start_time = time.time()reg = i().fit(X_train, y_train)y_pred = reg.predict(X_test)accuracy = np.round(accuracy_score(y_test, y_pred), 2)f1 = np.round(f1_score(y_test, y_pred, average='weighted'), 2)recall = np.round(recall_score(y_test, y_pred, average='weighted'), 2)precision = np.round(precision_score(y_test, y_pred, average='weighted'), 2)end_time = time.time()time_taken = np.round((end_time - start_time), 2)temp_df.loc[len(temp_df)] = [dataset, dataform, X_train.shape[1], str(i).split('.')[-1][:-2], accuracy, f1, recall, precision, time_taken]return temp_df

开始训练

from sklearn.discriminant_analysis import LinearDiscriminantAnalysislda = LinearDiscriminantAnalysis()X_train_lda = lda.fit_transform(X_train, y_train)X_test_lda = lda.transform(X_test)

预处理、分割和数据集的缩放,都与回归部分相同。在对8个不同的数据集进行新联后我们得到了下面结果:

常见的降维技术比较:能否在不丢失信息的情况下降低数据维度

分类模型分析

我们比较了上面所有的三种方法SVD、LDA和PCA。

LDA数据集通常优于原始形式的数据和由其他降维方法创建的低维数据,因为它旨在识别最有效区分类的特征的线性组合,而原始数据和其他无监督降维技术不关心数据集的标签。降维技术在应用于更大的数据集时,可以极大地减少了数据集中的特征数量,这提高了机器学习模型的效率。在较小的数据集上,影响不是特别明显。除了LDA(它在这些情况下也很有效),因为它们在一些情况下,如二元分类,可以将数据集的维度减少到只有一个。当我们在寻找一定的性能时,LDA可以是分类问题的一个非常好的起点。SVD与回归一样,模型的性能下降很明显。需要调整n_components的选择。

总结

我们比较了一些降维技术的性能,如奇异值分解(SVD)、主成分分析(PCA)和线性判别分析(LDA)。我们的研究结果表明,方法的选择取决于特定的数据集和手头的任务。

对于回归任务,我们发现PCA通常比SVD表现得更好。在分类的情况下,LDA优于SVD和PCA,以及原始数据集。线性判别分析(LDA)在分类任务中始终击败主成分分析(PCA)的这个是很重要的,但这并不意味着LDA在一般情况下是一种更好的技术。这是因为LDA是一种监督学习算法,它依赖于有标签的数据来定位数据中最具鉴别性的特征,而PCA是一种无监督技术,它不需要有标签的数据,并寻求在数据中保持尽可能多的方差。因此,PCA可能更适合于无监督的任务或可解释性至关重要的情况,而LDA可能更适合涉及标记数据的任务。

虽然降维技术可以帮助减少数据集中的特征数量,并提高机器学习模型的效率,但重要的是要考虑对模型性能和结果可解释性的潜在影响。

本文完整代码:

https://github.com/salmankhi/DimensionalityReduction/blob/main/Notebook_25373.ipynb

以上就是常见降维技术对比:保持信息完整性下降低数据维度的可行性分析的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/835554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月27日 10:12:36
下一篇 2025年11月27日 10:18:29

相关推荐

  • 人工智能如何将数据中心转变为可持续性的动力

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 数据中心历来是许多技术进步的支柱,现在面临的不仅仅是基础设施提供商的问题。人工智能的快速发展凸显了数据中心迫切需要更加敏捷、创新和协作,为这个新时代提供动力。 人工智能和机器学习的蓬勃发展,加上…

    2025年12月2日 科技
    000
  • 如何通过人工智能(AI)和机器学习应对零售劳动力和执行方面的挑战

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 斑马技术大中华区技术总监 程宁 面对不断增长的需求,零售团队人员数量及具体运营执行是否能及时匹%ignore_a_1%,正成为零售商们不得不面临的挑战。零售团队人员的短缺将使商店难以正常运营。当…

    2025年12月2日
    000
  • 用于数据增强的十个Python库

    数据增强是人工智能和机器学习领域的一项关键技术。它涉及到创建现有数据集的变体,提高模型性能和泛化。python是一种流行的ai和ml语言,它提供了几个强大的数据增强库。在本文中,我们将介绍数据增强的十个python库,并为每个库提供代码片段和解释。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索…

    2025年12月1日 科技
    000
  • 机器学习算法中的特征筛选问题

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 机器学习算法中的特征筛选问题 在机器学习领域中,特征筛选是一个非常重要的问题,它的目标是从大量的特征中选择出对预测任务最有用的特征。通过特征筛选可以降低维度,减少计算复杂度,提高模型的准确性和解…

    2025年12月1日 科技
    000
  • 解决不均衡数据集的分类方法有哪些?

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 在机器学习领域,不平衡数据集是一种常见问题,指的是训练数据集中不同类别的样本数量差异很大。例如,在二分类问题中,正样本数量远远小于负样本数量。这会导致训练出的模型更倾向于预测数量更多的类别,而忽…

    2025年12月1日 科技
    000
  • 零知识机器学习:应用与发展潜力

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 零知识机器学习(Zero-Knowledge Machine Learning,ZKML)是一种新兴的机器学习技术,旨在在保护数据隐私的同时实现机器学习任务。它的潜力在于解决当前机器学习中普遍存…

    2025年12月1日 科技
    000
  • 了解自动编码器的训练方法:从架构探究开始

    噪声数据是机器学习中常见的问题之一,自动编码器是解决这类问题的有效方法。本文将介绍自动编码器的结构和正确训练方法。 自动编码器是一种无监督学习的人工神经网络,用于学习数据的编码。其目标是通过训练网络来捕捉输入图像的关键特征,并将其转化为低维表示,常用于降维处理。 自动编码器的架构 自动编码器由3部分…

    2025年12月1日 科技
    000
  • 零基础图像识别的学习方法

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 基于零次学习的图像识别是一种新兴的技术,它与传统的图像识别方法不同。传统的图像识别需要通过训练数据来学习特征和分类规则,而零次学习则不需要预先训练模型。它是根据待识别图像的特征进行实时分类,从而…

    2025年12月1日 科技
    000
  • 手写识别技术及其算法分类

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 机器学习技术的进步必定推动手写识别技术的发展。本文将重点介绍目前表现优异的手写识别技术和算法。 matlab基础知识简介 中文WORD版 MATLAB(矩阵实验室)是MATrix LABorat…

    2025年12月1日 科技
    000
  • 拥抱未来:塑造 2024 年的顶尖技术

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 在充满活力的技术创新领域,每一年都会带来一系列进步,重新定义我们的生活、工作以及与周围世界互动的方式。 步入 2024 年,大量突破性技术有望彻底改变我们生活的各个方面,从医疗保健、交通到通信和…

    2025年12月1日 科技
    000
  • Web 端实时防挡脸弹幕(基于机器学习)

    防挡脸弹幕,即大量弹幕飘过,但不会遮挡视频画面中的人物,看起来像是从人物背后飘过去的。 机器学习已经火了好几年了,但很多人都不知道浏览器中也能运行这些能力; 本文介绍在视频弹幕方面的实践优化过程,文末列举了一些本方案可适用的场景,期望能开启一些脑洞。 mediapipe Demo(https://g…

    2025年12月1日 科技
    000
  • 机器人技能大比拼

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 2023年6月30日,合肥市瑶海区的三十八中学北校区成功举办了第八届青少年机器人竞赛。超过400名青少年在全区参与了包括机器人创意、综合技能和创新挑战在内的8个项目的比赛,共同感受科技的魅力。(…

    2025年12月1日 科技
    000
  • 智能化解决方案:保障数据安全阻击泄露和丢失

    网络安全是一场不断进行的战斗,每天都会出现新的威胁,首席信息安全官 (ciso) 正在努力跟进。他们承受着警报的压力,团队也面临着挑战。因此,ciso 及其团队面临着持续的压力,需要寻找新的创新方法来保护组织免受伤害。其中一种应对方法是利用人工智能 (ai) 的力量。人工智能可以帮助识别潜在威胁,自…

    2025年12月1日 科技
    000
  • 九种常用的Python特征重要性分析方法

    特征重要性分析用于了解每个特征(变量或输入)对于做出预测的有用性或价值。目标是确定对模型输出影响最大的最重要的特征,它是机器学习中经常使用的一种方法。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 为什么特征重要性分析很重要? 如果有一个包…

    2025年12月1日 科技
    000
  • 人工智能和机器学习将如何改变数据中心?

    高盛预计,到 2025 年,全球人工智能投资预计将达到 2000 亿美元。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 这些快速发展的技术的巨大潜力刺激了其用例的显着增加,从医疗保健转型到增强客户体验。 尽管人们已经对人工智能和机器学习在…

    2025年12月1日 科技
    000
  • 使用Panda-Gym的机器臂模拟实现Deep Q-learning强化学习

    强化学习(rl)是一种机器学习方法,它允许代理通过试错来学习如何在环境中表现。行为主体会因为采取行动导致预期结果而获得奖励或受到惩罚。随着时间的推移,代理会学会采取行动,以使得其预期回报最大化 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ …

    2025年12月1日 科技
    000
  • 2023年AI和ML在数据中心的十大新兴应用

    人工智能(ai)和机器学习(ml)已经成为数据中心领域的关键技术。到2023年,我们将目睹数据中心运营、效率和安全性的革命,这要归功于人工智能和机器学习的应用。这些技术越来越多地实现了任务的自动化,优化了资源管理,并提高了整个数据中心的性能。本文详细探讨了十种新兴的数据中心应用,这些应用将在今年彻底…

    2025年12月1日 科技
    000
  • 机器学习 | PyTorch简明教程上篇

    前面几篇文章介绍了特征归一化和张量,接下来开始写两篇pytorch简明教程,主要介绍pytorch简单实践。 1、四则运算 import torcha = torch.tensor([2, 3, 4])b = torch.tensor([3, 4, 5])print(“a + b: “, (a + …

    2025年12月1日 科技
    000
  • 机器学习|PyTorch简明教程下篇

    接着上篇《pytorch简明教程上篇》,继续学习多层感知机,卷积神经网络和lstmnet。 1、多层感知机 多层感知机是一种简单的神经网络,也是深度学习的重要基础。它通过在网络中添加一个或多个隐藏层来克服线性模型的限制。具体的图示如下: ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限…

    2025年12月1日 科技
    000
  • 微软新专利公布:通过机器学习创建出“会脸红”的逼真头像

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 11 月 16 日消息,微软的一项新专利于当地时间周二在美国专利商标局网站上公开,这是一种新的机器学习模型专利,可为用户创作出“更加有生命力”的逼真头像。 据介绍,通过新的机器学习模型,头像或照…

    2025年12月1日 科技
    000

发表回复

登录后才能评论
关注微信