Python-sklearn-降维
Sklearn 降维与流形学习sklearn.decomposition和sklearn.manifold提供 PCA、SVD、NMF、t-SNE 等降维工具。 矩阵分解1.PCA— 主成分分析 ⭐fromsklearn.decompositionimportPCA modelPCA(n_componentsNone,# 保留的成分数# int: 成分数# float (0~1): 保留的方差比例# mle: 自动选择Minkas MLE# None: 保留所有 min(n_samples, n_features)copyTrue,whitenFalse,# 白化处理svd_solverauto,# auto,full,arpack,randomizedtol0.0,# arpack 的容差iterated_powerauto,# randomized 的幂迭代次数n_oversamples10,# randomized 的过采样数random_stateNone,)model.fit(X)# 核心属性print(model.components_)# 主成分特征向量(n_components, n_features)print(model.explained_variance_)# 各成分的方差 ⭐print(model.explained_variance_ratio_)# 各成分的方差比例 ⭐print(model.singular_values_)# 奇异值print(model.mean_)# 训练数据的均值print(model.n_components_)# 实际成分数print(model.n_features_)# 特征数print(model.n_samples_)# 样本数print(model.noise_variance_)# 噪声方差# 变换X_pcamodel.transform(X)X_pcamodel.fit_transform(X)# 逆变换近似重建X_reconstructedmodel.inverse_transform(X_pca)# 增量 PCA大数据集pca.partial_fit(X_batch)# 不适用于普通 PCA2.IncrementalPCA— 增量 PCAfromsklearn.decompositionimportIncrementalPCA modelIncrementalPCA(n_componentsNone,whitenFalse,copyTrue,batch_sizeNone# 每批样本数)# 分批拟合forbatchinnp.array_split(X,10):model.partial_fit(batch)X_pcamodel.transform(X)3.KernelPCA— 核 PCAfromsklearn.decompositionimportKernelPCA modelKernelPCA(n_componentsNone,kernellinear,# linear,poly,rbf,sigmoid,cosine,precomputedgammaNone,# rbf/poly/sigmoid 的参数degree3,# poly 次数coef01,# poly/sigmoid 的独立项kernel_paramsNone,alpha1.0,# 学习到的逆变换正则化参数fit_inverse_transformFalse,eigen_solverauto,# auto,dense,arpack,randomizedtol0,max_iterNone,iterated_powerauto,remove_zero_eigFalse,random_stateNone,copy_XTrue,n_jobsNone)model.fit(X)X_kpcamodel.transform(X)# 逆变换需 fit_inverse_transformTrueX_reconstructedmodel.inverse_transform(X_kpca)4.SparsePCA/MiniBatchSparsePCA— 稀疏 PCAfromsklearn.decompositionimportSparsePCA,MiniBatchSparsePCA modelSparsePCA(n_componentsNone,alpha1,# 稀疏控制参数ridge_alpha0.01,# 岭惩罚max_iter1000,tol1e-8,methodlars,# lars 或 cd坐标下降n_jobsNone,random_stateNone)model.fit(X)print(model.components_)# MiniBatch 版本大数据modelMiniBatchSparsePCA(n_componentsNone,alpha1,batch_size100,random_state42)model.fit(X)5.TruncatedSVD— 截断 SVD ⭐不中心化数据直接进行 SVD 分解适合稀疏矩阵如 TF-IDF。fromsklearn.decompositionimportTruncatedSVD modelTruncatedSVD(n_components2,algorithmrandomized,# arpack 或 randomizedn_iter5,# 幂迭代次数randomizedn_oversamples10,random_stateNone,tol0.0)model.fit(X)print(model.components_)print(model.explained_variance_)print(model.explained_variance_ratio_)print(model.singular_values_)X_svdmodel.transform(X)X_approxmodel.inverse_transform(X_svd)6.NMF— 非负矩阵分解fromsklearn.decompositionimportNMF modelNMF(n_componentsNone,initNone,# random,nndsvd,nndsvda,nndsvdar,customsolvercd,# cd坐标下降或 mu乘法更新beta_lossfrobenius,# frobenius 或 kullback-leibler 或 floattol1e-4,max_iter200,random_stateNone,alpha_W0.0,# W 正则化alpha_Hsame,# H 正则化same 或 floatl1_ratio0.0,# L1/L2 比率0仅L2, 1仅L1shuffleFalse,# 按样本划分时的打乱顺序verbose0)model.fit(X)print(model.components_)# H 矩阵 (n_components, n_features)print(model.n_components_)print(model.reconstruction_err_)print(model.n_iter_)# W 矩阵样本在成分上的表示Wmodel.transform(X)X_approxmodel.inverse_transform(W)7.DictionaryLearning— 字典学习fromsklearn.decompositionimportDictionaryLearning modelDictionaryLearning(n_componentsNone,alpha1,# 稀疏控制max_iter1000,tol1e-8,fit_algorithmlars,# lars 或 cdtransform_algorithmomp,# lars,lasso_lars,lasso_cd,omp,thresholdtransform_n_nonzero_coefsNone,transform_alphaNone,n_jobsNone,code_initNone,dict_initNone,callbackNone,verboseFalse,random_stateNone)model.fit(X)print(model.components_)# 字典8.FactorAnalysis— 因子分析fromsklearn.decompositionimportFactorAnalysis modelFactorAnalysis(n_componentsNone,tol1e-2,copyTrue,max_iter1000,noise_variance_initNone,# 噪声方差初始值svd_methodrandomized,iterated_power3,rotationvarimax,# None 或 varimax正交旋转random_state0)model.fit(X)X_transformedmodel.transform(X)print(model.components_)print(model.noise_variance_)print(model.loglike_)9.FastICA— 独立成分分析ICAfromsklearn.decompositionimportFastICA modelFastICA(n_componentsNone,algorithmparallel,# parallel 或 deflationwhitenunit-variance,# unit-variance 或 True/Falsefunlogcosh,# logcosh,exp,cubefun_argsNone,# 函数参数max_iter200,tol1e-4,w_initNone,whiten_solversvd,random_stateNone)model.fit(X)print(model.components_)# 独立成分print(model.mixing_)# 混合矩阵print(model.mean_)# 各特征的均值print(model.n_iter_)# 迭代次数X_icamodel.transform(X)X_reconstructedmodel.inverse_transform(X_ica)10.LatentDirichletAllocation— LDA 主题模型fromsklearn.decompositionimportLatentDirichletAllocation modelLatentDirichletAllocation(n_components10,# 主题数doc_topic_priorNone,# Dirichlet 先验 αtopic_word_priorNone,# Dirichlet 先验 βlearning_methodbatch,# batch 或 onlinelearning_decay0.7,# online 学习率衰减learning_offset10.0,max_iter10,batch_size128,evaluate_every-1,# 每多少次迭代评估困惑度total_samples1e6,perp_tol1e-1,mean_change_tol1e-3,max_doc_update_iter100,n_jobsNone,verbose0,random_stateNone)model.fit(X)print(model.components_)# 主题-词矩阵 (n_topics, n_words)print(model.n_batch_iter_)# batch 方法的迭代次数print(model.bound_)# 变分下界# 文档-主题分布doc_topicsmodel.transform(X)# (n_docs, n_topics) 流形学习Manifold Learning1.TSNE— t-SNE ⭐fromsklearn.manifoldimportTSNE modelTSNE(n_components2,# 嵌入维度通常 2 或 3perplexity30.0,# 有效邻居数 (5-50)early_exaggeration12.0,# 早期放大因子learning_rateauto,# 学习率 (10-1000)automax(N/12, 200)n_iter1000,# 迭代优化次数n_iter_without_progress300,# 无改善则提前停止min_grad_norm1e-7,metriceuclidean,# 距离度量metric_paramsNone,initpca,# random,pca 或 ndarrayverbose0,random_stateNone,methodbarnes_hut,# barnes_hut 或 exactangle0.5,# barnes_hut 的角度-速度权衡n_jobsNone,perplexity_max_iter100# 1.3: perplexity 校准最大迭代)X_embeddedmodel.fit_transform(X)# 关键属性print(model.n_iter_)# 实际迭代数print(model.kl_divergence_)# 最终的 KL 散度print(model.embedding_)# 嵌入坐标print(model.learning_rate_)# 实际使用的学习率调参指导:# perplexity: 5-50数据集越大值越大# learning_rate: 10-1000# n_iter: 至少 250通常 1000-5000# 建议多次运行取最佳结果# 大规模数据集5000 样本先 PCA 降维再 t-SNEfromsklearn.pipelineimportmake_pipelinefromsklearn.decompositionimportPCA pipelinemake_pipeline(PCA(n_components50,random_state42),TSNE(n_components2,random_state42))X_embeddedpipeline.fit_transform(X)2.MDS— 多维缩放fromsklearn.manifoldimportMDS modelMDS(n_components2,metricTrue,# True度量 MDS, False非度量 MDSn_init4,# SMACOF 运行次数max_iter300,eps1e-3,# 收敛容差n_jobsNone,random_stateNone,dissimilarityeuclidean,# euclidean 或 precomputednormalized_stressauto# 是否返回标准化应力)X_embeddedmodel.fit_transform(X)print(model.stress_)# 应力值越低越好print(model.n_iter_)print(model.embedding_)3.Isomap— 等度量映射fromsklearn.manifoldimportIsomap modelIsomap(n_neighbors5,# 邻居数n_components2,eigen_solverauto,# auto,arpack,densetol0,max_iterNone,path_methodauto,# auto,FW(Floyd-Warshall),D(Dijkstra)neighbors_algorithmauto,# auto,brute,kd_tree,ball_treen_jobsNone,metricminkowski,p2,metric_paramsNone)X_embeddedmodel.fit_transform(X)print(model.embedding_)print(model.dist_matrix_)# 训练数据的全对最短路径距离print(model.nbrs_)# NearestNeighbors 实例print(model.kernel_pca_)# KernelPCA 实例print(model.n_features_in_)4.LocallyLinearEmbedding— 局部线性嵌入LLEfromsklearn.manifoldimportLocallyLinearEmbedding modelLocallyLinearEmbedding(n_neighbors5,n_components2,reg0.001,# 正则化常数eigen_solverauto,tol1e-6,max_iter100,methodstandard,# standard,hessian,modified,ltsahessian_tol0.0001,# Hessian LLE 的容差modified_tol1e-12,# Modified LLE 的容差neighbors_algorithmauto,random_stateNone,n_jobsNone)X_embeddedmodel.fit_transform(X)print(model.embedding_)print(model.reconstruction_error_)# 与 reconstruction error_ 相关联print(model.nbrs_)5.SpectralEmbedding— 谱嵌入fromsklearn.manifoldimportSpectralEmbedding modelSpectralEmbedding(n_components2,affinitynearest_neighbors,# nearest_neighbors,rbf,precomputed,callablegammaNone,# RBF 核参数random_stateNone,eigen_solverNone,# None,arpack,lobpcg,amgeigen_tolauto,n_neighborsNone,# nearest_neighbors 的邻居数n_jobsNone)X_embeddedmodel.fit_transform(X)print(model.embedding_)print(model.affinity_matrix_) PCA 实用技巧确定保留的方差importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.decompositionimportPCA pcaPCA().fit(X)# 累积方差比例cumsumnp.cumsum(pca.explained_variance_ratio_)# 找到 95% 方差所需的成分数n_95np.argmax(cumsum0.95)1print(fComponents for 95% variance:{n_95})# 可视化fig,(ax1,ax2)plt.subplots(1,2,figsize(14,5))# 碎石图ax1.bar(range(1,len(pca.explained_variance_ratio_)1),pca.explained_variance_ratio_)ax1.set_xlabel(Principal Component)ax1.set_ylabel(Explained Variance Ratio)# 累积方差ax2.plot(range(1,len(cumsum)1),cumsum,bo-)ax2.axhline(y0.95,colorr,linestyle--,label95%)ax2.axvline(xn_95,colorr,linestyle--)ax2.set_xlabel(Number of Components)ax2.set_ylabel(Cumulative Explained Variance)ax2.legend()plt.tight_layout()plt.show()PCA 逆变换重建pcaPCA(n_components0.95)# 只保留 95% 方差的成分X_reducedpca.fit_transform(X)X_reconstructedpca.inverse_transform(X_reduced)# 计算重建误差reconstruction_errornp.mean((X-X_reconstructed)**2) 算法选择指南场景推荐线性降维、去噪PCA稀疏数据如 TF-IDFTruncatedSVD非负数据NMF非线性可视化2D/3DTSNE保留全局结构MDS/Isomap保留局部结构LocallyLinearEmbedding独立源信号FastICA概率建模FactorAnalysis文本主题LatentDirichletAllocation大数据增量IncrementalPCA非线性 核方法KernelPCA稀疏表示SparsePCA/DictionaryLearning[[sklearn-总览|← 返回总览]]

相关新闻

基于大语言模型构建拟人化多角色对话引擎:从提示词工程到实战部署

基于大语言模型构建拟人化多角色对话引擎:从提示词工程到实战部署

最近在开发一个多角色交互的智能对话系统时,遇到了一个核心挑战:如何让AI角色在对话中保持鲜明、一致且富有深度的“人设”,而不仅仅是机械地应答。这让我想起了“八仙过海,各显神通”的典故——每个角色都应有其独特的背景、性格…

2026/10/6 18:44:15 阅读更多 →
Python-sklearn-聚类

Python-sklearn-聚类

Sklearn 聚类算法 sklearn.cluster 提供 K-Means、层次聚类、DBSCAN、GMM 等经典聚类算法。🎯 基于划分的聚类 1. KMeans — K 均值聚类 ⭐ from sklearn.cluster import KMeansmodel KMeans(n_clusters8, # 簇的数量initk-means, # k-means…

2026/10/15 6:35:50 阅读更多 →
从“肃面爱音”实战解析音视频处理项目评估与落地指南

从“肃面爱音”实战解析音视频处理项目评估与落地指南

1. 先搞清楚“肃面爱音”到底是什么,以及它能解决什么问题 看到“肃面爱音”这个标题,很多人第一反应可能是某个新出的工具、模型或者某种音频处理技术。在没有详细正文和关键词的情况下,我们只能基于这个名称本身和常见的工程实践来拆解。这…

2026/10/13 21:00:40 阅读更多 →

最新新闻

从「五个窗口」到「一条流水线」:金融核心交易测试的 AI 协作矩阵设计

从「五个窗口」到「一条流水线」:金融核心交易测试的 AI 协作矩阵设计

摘要单点工具再强,也解决不了链路问题。 五个助手各做一件事,比一个助手做五件事更可靠——但前提是它们之间有字段级契约,而不是靠人复制粘贴。风险不能只用 P0–P3。 金融场景必须 P(技术严重度) M(资金影…

2026/10/15 7:03:52 阅读更多 →
云手机原理与 Python + ADB 自动化实战(附傲晨云手机选型建议)

云手机原理与 Python + ADB 自动化实战(附傲晨云手机选型建议)

摘要:云手机不是「安卓模拟器上云」这么简单,它的本质是把完整安卓实例跑在云端服务器,本地只负责传画面和回传操作指令。本文先讲清云手机的架构与适用场景,再用 Python ADB 写一个从「单机操控」到「批量云机调度」的可运行示例…

2026/10/15 7:03:52 阅读更多 →
可编辑 PPT:调研、设计与实施方案

可编辑 PPT:调研、设计与实施方案

本文是内部设计文档。产品对外的说明文档另出。 调研时间:2026-100. 一句话 在现有「数字人讲 PPT」之外,新增一条独立产品线: 输入主题 / 文档 → 生成整套幻灯片 → 网页里自由编辑 → 导出可改字的 .pptx / .pdf 跟现有产品线的区别&#…

2026/10/15 7:03:52 阅读更多 →
2026年10月浙江省联通宽带实测办理全流程避坑攻略

2026年10月浙江省联通宽带实测办理全流程避坑攻略

上个月底整理家庭开支账单,我盯着手机屏幕算了半天,发现每个月话费加宽带竟然要两百多块。翻看历史扣费记录,之前用的某家宽带不仅价格悄悄涨了,晚高峰看视频还经常转圈圈。为了省钱兼提速,我决定把家里另外两条宽带也…

2026/10/15 7:03:52 阅读更多 →
硬件设计开发指导:从需求分析到验收的全流程文档规范

硬件设计开发指导:从需求分析到验收的全流程文档规范

简介:面向硬件开发团队的《硬件设计开发指导(完整版)》是一份可落地的内部流程规范文档,适合硬件工程师、项目负责人及研发管理人员用于统一开发节奏、降低设计风险。内容覆盖硬件产品从需求分析到中试交付的全过程,包…

2026/10/15 7:03:52 阅读更多 →
.NET 11 Preview 2 架构演进:AOT、动态PGO与GC改进实践

.NET 11 Preview 2 架构演进:AOT、动态PGO与GC改进实践

.NET 11 Preview 2 放出来的时候,我第一反应不是去翻新 API 列表,而是先看运行时仓库里的架构改动。这次 Preview 社区讨论最热的点,居然不是某个炫酷的 C# 语法糖,而是 AOT 成熟度、动态 PGO、GC 暂停时间这一类偏底层的东西。这…

2026/10/15 7:02:52 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →