遥感&机器学习入门实战教程|Sklearn案例⑥:网格搜索与超参数优化

机器学习(遥感)| 介绍 以二维空间为例,同一个类型在二维空间中的映射都有其相似性,我们的目的就是在数据映射的特征空间中找出最佳的“决策边界”(Decision Boundary)。图中的三个不同颜色的圈就是不同的决策边界。当任务非常复杂的时候,机器学习算法在特征空间中寻找最佳的可以将不同种类数据分开的决策边界。将(X,Y)数据投影到二维空间,基于最小二乘法拟合一个曲线,这个曲线方程即为线性回归模型,基于该模型将X输入预测Y,评估模型的精度。本文简单介绍机器学习在进行预测的基本流程,之后也将对流程中的每部分进行具体的介绍。 阅读详情

在前几篇案例中,有同学在后台留言:

“模型的参数到底怎么调?比如 SVM 的 C 和 γ,随机森林的树数和深度,要怎么选才能得到最优结果呢?”

这是一个非常经典的问题:参数选不好,模型效果差一截;参数调优,性能能上一个台阶。

本篇我们就来介绍 sklearn 中的 网格搜索(Grid Search),看看如何系统地找到最优参数组合。

🧩 1. 什么是超参数搜索?

  • 模型参数:训练过程中自动学习到的(如逻辑回归的权重)。
  • 超参数:需要人为设定的(如 SVM 的核函数、C 值;随机森林的树数)。

超参数对模型表现影响巨大。手工调参既耗时又容易遗漏最佳组合,因此 sklearn 提供了 GridSearchCV,帮我们自动尝试多组参数,并通过交叉验证挑选最优解。

⚙️ 2. 完整代码示例

我们仍然基于 KSC 高光谱数据集,用 PCA 压缩后特征作为输入,演示 SVM 与随机森林 的参数搜索。

# -*- coding: utf-8 -*-
"""
Sklearn案例⑥:网格搜索与超参数优化
"""
import os, numpy as np, scipy.io as sio, matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
import seaborn as sns

# ===== 参数设置 =====
DATA_DIR = "你的数据路径"
PCA_DIM, TRAIN_RATIO, SEED = 30, 0.3, 42

# ===== 1. 加载数据 =====
X = sio.loadmat(os.path.join(DATA_DIR, "KSC.mat"))["KSC"].astype(np.float32)
Y = sio.loadmat(os.path.join(DATA_DIR, "KSC_gt.mat"))["KSC_gt"].astype(int)
coords = np.argwhere(Y != 0)
labels = Y[coords[:,0], coords[:,1]] - 1
train_ids, test_ids = train_test_split(
    np.arange(len(coords)), train_size=TRAIN_RATIO,
    stratify=labels, random_state=SEED
)
train_pixels = X[coords[train_ids,0], coords[train_ids,1]]
test_pixels  = X[coords[test_ids,0], coords[test_ids,1]]

# ===== 2. 标准化 + PCA =====
scaler = StandardScaler().fit(train_pixels)
pca = PCA(n_components=PCA_DIM, random_state=SEED).fit(scaler.transform(train_pixels))
X_train = pca.transform(scaler.transform(train_pixels))
X_test  = pca.transform(scaler.transform(test_pixels))
y_train, y_test = labels[train_ids], labels[test_ids]

# ===== 3. SVM 参数搜索 =====
param_grid_svm = {
    "C": [0.1, 1, 10],
    "gamma": [0.01, 0.1, 1],
    "kernel": ["rbf"]
}
grid_svm = GridSearchCV(SVC(), param_grid_svm, cv=3, n_jobs=-1, verbose=1)
grid_svm.fit(X_train, y_train)

print("最佳参数(SVM):", grid_svm.best_params_)
print("测试集准确率:", accuracy_score(y_test, grid_svm.best_estimator_.predict(X_test)))

# 可视化搜索结果 (C vs gamma 热力图)
scores = grid_svm.cv_results_["mean_test_score"].reshape(len(param_grid_svm["C"]), len(param_grid_svm["gamma"]))
plt.figure(figsize=(6,5))
sns.heatmap(scores, annot=True, xticklabels=param_grid_svm["gamma"], yticklabels=param_grid_svm["C"], cmap="YlGnBu")
plt.xlabel("gamma"); plt.ylabel("C"); plt.title("SVM 网格搜索结果")
plt.show()

# ===== 4. 随机森林 参数搜索 =====
param_grid_rf = {
    "n_estimators": [10, 30, 50],
    "max_depth": [5, 10, None]
}
grid_rf = GridSearchCV(RandomForestClassifier(random_state=SEED),
                       param_grid_rf, cv=3, n_jobs=-1, verbose=1)
grid_rf.fit(X_train, y_train)

print("最佳参数(RF):", grid_rf.best_params_)
print("测试集准确率:", accuracy_score(y_test, grid_rf.best_estimator_.predict(X_test)))

📊 3. 结果与分析

运行后我们会得到:

  • SVM:输出最佳 C 和 gamma,并绘制了一个参数搜索热力图,可以直观看出不同参数下的准确率差异。
  • 随机森林:自动选择最佳树数和深度。

在实验中,SVM 的性能对参数敏感,而随机森林更稳健。通过 GridSearchCV,我们不再需要手工试探,而是能系统化地找到较优解。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

💡 4. 总结

这一节我们解决了同学们常见的疑问:如何找到最优参数?

  1. sklearn 提供的 GridSearchCV 可以自动化调参,支持交叉验证,避免“拍脑袋调参”。
  2. 除了网格搜索,还有 RandomizedSearchCV,在参数空间很大时更高效。
  3. 在实际科研和工程中,参数调优往往比更换模型更能带来提升。

👉 下一篇,我们将进入 特征选择与重要性分析,看看如何找到对分类最关键的波段或特征(当然,也可能应要求更新其他内容)。
欢迎大家关注下方我的公众获取更多内容!

遥感机器学习实战:从影像到分类图的全流程手记 地球观测(Earth Observation)与遥感(Remote Sensing)是获取地表动态信息的核心技术,其本质是将多光谱波段(Spectral Bands)数据转化为可解释的地物认知。机器学习(Machine Learning)在此过程中并非替代专家经验,而是通过监督分类(Supervised Classification)建模光谱-地物映射关系,显著提升解译效率与一致性。关键技术价值在于突破传统目视判读的尺度瓶颈和人工标注成本黑洞,支撑农田监测、水体识别、林地变化等高频应用场景。本文聚焦真实生产 阅读详情

相关推荐

随机森林算法在森林生物量遥感反演中的Matlab与Python实战对比

机器学习作为从海量数据中挖掘规律的核心技术,其集成学习范式通过构建多个基学习器并综合其预测结果,能有效提升模型的泛化能力和稳定性。随机森林正是这一范式的杰出代表,它通过Bootstrap重采样和随机特征选择构建大量决策树,利用“集体智慧”降低方差、防止过拟合,特别适合处理高维、非线性的复杂数据。在遥感与地理信息科学领域,这种强鲁棒性使其成为解决像元级反演问题的理想选择,例如将多光谱、高光谱影像的光谱特征、植被指数和纹理信息,与地面实测的森林生物量建立可靠的非线性映射关系。本文以森林生物量这一关键生态参数为具

aaa1231722的博客 451

遥感&机器学习入门实战教程|Sklearn案例⑳:支持向量机(SVM)分类

【摘要】本文介绍了支持向量机(SVM)在高光谱遥感分类中的应用优势,包括小样本友好、非线性扩展和参数灵活可调三大特点。详细解析了SVM的关键参数设置,如核函数选择、惩罚系数C和gamma值调整。通过KSC数据集的完整代码示例,展示了SVM分类的全流程实现,包括数据预处理、模型训练、评估指标计算和整图预测可视化。实验结果表明,SVM在样本有限的情况下能保持较好的分类性能,参数选择对结果影响显著。文章作为Sklearn遥感实战系列的终篇,完整覆盖了从传统机器学习到深度学习的入门路径。

lestatlu的博客 579

机器学习在自然科学中的五大核心算法实战应用

机器学习与深度学习技术正深刻改变自然科学研究的范式。从基础概念来看,随机森林和XGBoost等集成学习方法通过特征重要性评估,能有效处理高维特征数据;而CNN和LSTM等深度学习模型凭借其局部感知和时序处理能力,在时空数据建模中表现卓越。这些技术的核心价值在于能够从多源异构数据中自动提取规律,大幅提升预测准确率。在气象预测、地质勘探等典型应用场景中,结合Transformer等前沿算法,可以实现更精准的自然现象建模。特别是在处理卫星云图、地震预测等复杂任务时,合理的特征工程和模型融合策略能显著提升性能。

weixin_33717117的博客 387

基于随机森林与遥感数据的森林生物量反演:从原理到Python/Matlab实现

机器学习中的集成学习算法通过组合多个基础模型来提升预测精度与稳定性,其核心原理在于降低方差、减少过拟合,从而获得更强的泛化能力。随机森林作为集成学习的代表算法之一,通过构建多棵决策树并综合其输出,在处理高维、非线性数据时表现出优异的性能,其技术价值在于能够有效处理复杂特征关系并提供特征重要性评估。这一特性使其在遥感与地理信息科学领域具有重要应用,特别是在处理多光谱、高光谱影像等空间数据时,能够从海量像素中挖掘出地表参数与光谱特征之间的复杂映射关系。本文聚焦于森林生物量估算这一具体应用场景,深入探讨如何利用随

weixin_33894640的博客 323

机器学习真实落地的四大认知断裂带与破局实践

机器学习不是算法调优,而是问题定义、数据生成、模型部署与业务闭环的系统工程。当模型准确率高却无法驱动决策,根源常在于标签模糊性、特征动态性、评估静态化与组织适配性等深层矛盾。本文聚焦工业级场景中反复出现的认知断层——从‘数据驱动’到‘问题驱动’的范式逆转、从‘模型即产品’到‘模型即接口’的服务重构、从‘静态评估’到‘动态契约’的责任升级、从‘技术最优’到‘组织可行’的落地校准。结合GAN物理约束修复、概念瓶颈医疗模型、多目标强化学习信号控制、不确定性感知农业预测四大实战案例,揭示如何将领域知识、业务逻辑与算

cqbh2011的博客 472

数学建模实战:多尺度碳排放预测与Shapley协同优化

碳排放预测是环境系统建模的核心任务,涉及时间序列分析、多目标优化与合作博弈等基础原理。其技术价值在于支撑气候政策制定与区域减排责任分配,广泛应用于联合国SDG指标评估、国家自主贡献(NDC)量化分析及碳市场机制设计等场景。随着数据形态从结构化表格向多源异构演进,传统ARIMA或线性回归已难以应对非平稳、带政策干预突变点的面板数据;而Shapley值作为衡量多方协同贡献的关键工具,正成为区域减排路径优化中不可或缺的公平性度量方法。本文基于2023亚太杯真实赛题,详解Bass扩散模型、动态权重Shapley计算

weixin_30298497的博客 338

机器学习十大经典算法实战指南:从原理到数学建模应用

机器学习算法是数据科学和人工智能领域的核心基础,其原理在于通过数据驱动的方式,让计算机系统自动学习规律并进行预测或决策。从技术价值看,掌握经典算法不仅能解决实际的分类、回归、聚类等问题,更是理解复杂模型和进行高效特征工程的基石。在应用场景上,无论是金融风控、推荐系统、自然语言处理还是图像识别,都离不开这些基础算法的支撑。特别是在数学建模竞赛和工业实践中,决策树、支持向量机(SVM)、K-Means等经典算法因其可解释性强、实现成熟,常作为解决方案的可靠起点。本文聚焦于如何在实际项目中有效运用这些算法,深入探

weixin_30781433的博客 370

决策树与随机森林:可解释分类模型的工程实践指南

决策树是一种基于空间递归切分的直观分类模型,其核心原理是通过信息增益或基尼不纯度实现数据纯度最大化;随机森林则在此基础上引入Bootstrap行采样和特征子集列采样双重随机机制,构建误差可抵消、泛化能力强的集成系统。这类模型因天然具备可解释性、对缺失值与异常值鲁棒、无需特征标准化等技术价值,广泛应用于金融风控、医疗诊断、工业质检等强监管或需人机协同的场景。本文聚焦于真实项目中决策树与随机森林的参数设计逻辑、OOB评估实践、特征编码陷阱规避及SHAP可解释性落地,尤其强调max_depth、max_featu

abo1977的博客 509

从线性回归到集成学习:经典机器学习算法的核心原理与建模实战

机器学习算法是数据科学和人工智能领域的基石,其核心在于通过数学模型从数据中学习规律并进行预测或决策。理解算法的原理,如线性回归的最小二乘法与统计假设、支持向量机的间隔最大化与核技巧,以及集成学习中Bagging与Boosting的差异,是构建可靠模型的关键。这些原理决定了模型的可解释性、泛化能力和计算效率,对于解决实际工程问题具有重要价值。在金融风控、推荐系统、医疗诊断等场景中,选择合适的算法并理解其内在机制,能有效提升解决方案的可靠性。本文以线性回归、SVM和随机森林等经典算法为例,深入剖析其几何与统计视

weixin_34321753的博客 407

Pyorange:可视化AutoML工作流引擎实战指南

自动化机器学习(AutoML)是提升建模效率的关键技术,其核心在于将数据预处理、特征工程、模型选择与超参优化等环节系统化编排。Pyorange并非黑箱炼丹工具,而是基于Orange框架构建的可视化低代码工作流引擎,深度融合自动化机器学习流程与交互式探索能力。它通过拖拽式节点编排、实时特征影响反馈、SHAP嵌入式可解释性等机制,在保障模型可控性的同时显著降低认知负荷与协作成本。适用于电商复购预测、金融风控、用户流失分析等结构化数据场景,尤其适合需快速验证、跨角色对齐、结果可复现的工业级AI落地项目。

abo1977的博客 361

KNN算法完全解析:距离度量、K值选择与工业级优化

KNN(K近邻)是一种基于实例的监督学习算法,其核心原理是通过计算样本在特征空间中的距离来实现分类或回归。它不依赖显式模型训练,而是以距离函数定义相似性,因此对特征尺度、分布和维度高度敏感。理解欧氏距离、曼哈顿距离与马氏距离的本质差异,有助于应对高维失效与量纲失衡问题;合理选择K值则需权衡偏差-方差,并结合交叉验证与业务场景。KNN的技术价值不仅在于简单可解释,更在于其作为数据质量探针与决策边界生成器的独特能力,广泛应用于欺诈检测、医疗诊断、推荐系统及大模型幻觉校验等真实场景。

weixin_33968104的博客 637

SVM算法精讲与实战:从核心原理到MATLAB/Python数模应用

支持向量机(SVM)是一种经典的监督学习算法,其核心原理基于统计学习理论中的结构风险最小化原则,通过寻找最大间隔超平面来实现分类。该算法通过引入核函数技巧,能够有效处理非线性可分问题,将数据映射到高维特征空间进行线性划分,从而显著提升了模型的表达能力与泛化性能。SVM在工程实践中具有重要价值,尤其适用于小样本、高维数据的模式识别场景,例如文本分类、图像识别和生物信息学分析。在数学建模竞赛中,面对特征清晰但样本有限的分类或预测问题时,SVM常因其优秀的泛化能力而成为首选方案。本文聚焦于SVM的实战应用,详细解

weixin_29035405的博客 339

极端随机树+布谷鸟+粒子群:遥感岩性分类识别系统复盘

在遥感影像智能解译领域,岩性分类一直是地质填图与矿产勘探中的关键环节。机器学习中的集成树模型因训练高效、可解释性强,被广泛应用于地物分类任务。其中,极端随机树通过随机化分裂阈值进一步提升泛化能力,尤其适合高光谱数据中维数高、样本少的场景。而模型的性能高度依赖超参数设置,传统网格搜索难以适应大参数空间,启发式优化算法如布谷鸟搜索和粒子群优化则能有效完成全局探索与局部精调。这类技术组合不仅提高了岩性识别的自动化程度,也为地质工作提供了可复现的智能识别方案。从多光谱与高光谱影像预处理、特征降维,到双优化引擎寻优与

weixin_34290631的博客 613

机器学习5种核心距离度量:欧氏、曼哈顿、余弦等实战选型指南

距离度量是机器学习中‘相似性’的数学表达,本质是建模数据点间的关联强度。其原理依赖于空间假设与数学公理(如三角不等式),直接影响KNN、DBSCAN、聚类和推荐系统等算法的稳定性与可解释性。技术价值在于:适配不同数据结构——欧氏距离适用于同量纲稠密特征,曼哈顿距离对异常值鲁棒且适合网格化场景,余弦相似度聚焦方向而非模长,天然适配高维稀疏文本;而闵可夫斯基距离通过p值灵活建模噪声特性。典型应用场景包括用户行为相似计算、地理坐标纠偏、工业传感器异常检测及TF-IDF文档匹配。本文聚焦工程落地中的距离选型逻辑、标

congtaixiao7151的博客 315

Silvaco Atlas新手入门:从安装到第一个半导体器件仿真(附DeckBuild配置)

本文为Silvaco Atlas新手提供了一份从软件安装、DeckBuild环境配置到完成第一个半导体器件仿真的实战指南。通过构建一个经典的PN结二极管案例,详细讲解了Atlas仿真语句的语法、核心命令顺序以及结果调试与可视化方法,帮助初学者快速上手并理解TCAD仿真流程。

sql99的博客 332

如何浏览与下载全球免费的地图高分辨率(亚米级)的遥感影像?

前言 如果你想使用商业卫星的高分辨遥感影像,一般价格昂贵。我们可以使用地图平台上免费的高分辨率数据。目前数据源很多,比如说google earth、天地图、四维地球、必应地图等等。这些影像统一有一个共同点就是:RGB三波段;Web地图瓦片服务。这意味着我们可以通过瓦片服务下载影像,但下载的影像只有三个波段,分别是 一.引言 二、可使用高分辨率的地图数据源 1.Google Earth影像 2.Esri World Image 3.天地图 4.必...

锐多宝的地理空间 2万+

基于随机森林算法的森林生物量反演:Matlab与Python实现全流程解析

遥感影像分析是获取大范围地表信息的关键技术,其核心原理是通过传感器接收地物反射或辐射的电磁波信号,反演地表参数。在生态监测领域,利用遥感数据反演森林生物量,对于量化碳汇、评估生态系统服务具有重要价值。随机森林算法凭借其出色的非线性拟合能力和抗过拟合特性,成为处理高维、复杂遥感特征与生物量之间映射关系的理想工具。该算法通过集成多棵决策树,有效提升了模型的稳健性和预测精度,广泛应用于森林碳储量估算、植被参数反演等场景。本文聚焦于森林生物量反演这一具体应用,详细阐述了从数据预处理、特征工程到模型构建与评估的全链条

weixin_33831673的博客 417

立创电赛C题:基于STM32的三端口DC-DC变换器设计与MPPT算法实现

本文详细解析了2021年立创电赛C题——基于STM32的三端口DC-DC变换器设计。文章从题目要求出发,系统阐述了采用双DC-DC电路(分别负责MPPT追踪与稳压)的硬件架构,并重点讲解了以STM32为核心、结合PID控制与扰动观察法(MPPT算法)的软件实现方案,为备赛者提供了完整的软硬件设计思路与调试经验。

weixin_42588877的博客 222

黎曼几何遇上迁移学习:pyRiemann跨域适应算法让模型泛化能力倍增

在当今机器学习领域,**pyRiemann跨域适应算法**正成为解决领域漂移问题的革命性工具。这个基于Python的机器学习库巧妙地将**黎曼几何**应用于**正定矩阵流形**,为**多变量数据分析**提供了全新的解决方案。通过**Riemannian Procrustes Analysis (RPA)**等先进算法,pyRiemann能够有效处理脑机接口、生物信号处理和遥感图像分析中的**跨域适

gitblog_01093的博客 729

如何利用CN3791实现太阳能电池板对锂电池的高效充电管理

本文详细介绍了如何利用CN3791芯片实现太阳能电池板对锂电池的高效充电管理。CN3791集成了MPPT(最大功率点跟踪)功能,能智能调节太阳能板的输出,确保在不同光照条件下获得最大功率。文章涵盖芯片工作原理、外围电路设计、充电全过程管理及实际应用经验,帮助开发者优化太阳能充电系统效率。

weixin_33709219的博客 499

将AAL图谱对应到Yeo7大网络中【原理,代码分析】

本文介绍了将AAL2图谱映射到Yeo7大功能网络的方法。通过整合皮层(Yeo2011)、小脑(Buckner2011)和纹状体(Choi2012)三个区域的功能网络图谱,采用投票机制确定每个AAL区域的网络归属。具体步骤包括:1)统计每个AAL区域体素在各网络图谱中的分布;2)选择体素数量最多的网络作为该区域的最终标签。该方法实现了从解剖结构到功能网络的映射,可获得120个AAL区域对应的7大功能网络标签。

yes666666的博客 2202

DAGsHub:面向机器学习工作流的数据版本化与实验可复现平台

机器学习项目中的数据版本控制与实验可复现性,是MLOps落地的核心挑战。传统Git无法有效管理大体积数据集,Jupyter缺乏结构化实验追踪能力,导致模型迭代中出现‘参数难追溯、指标难对比、结果难复现’三大痛点。DAGsHub通过深度集成DVC(数据版本控制)、Git(代码版本)和MLflow(实验与指标),构建语义化工作流操作系统,实现数据、代码、参数、模型、指标的原子级绑定与跨维度diff。其核心价值在于将离散的notebook和commit转化为可排序、可比较、可审计的实验快照,并天然支持团队协作、权

weixin_34275734的博客 371

078、镜头阴影校正:LSC算法原理与标定优化

文章摘要 镜头阴影校正(LSC)是手机影像系统中的关键技术,用于解决镜头渐晕效应导致的画面边缘暗角问题。本文详细分析了LSC算法的核心原理,包括非均匀网格划分、双线性插值等关键技术点,并揭示了标定流程中的常见陷阱(光源均匀性、灰卡反射特性、温度漂移)。文章还深入探讨了增益计算的工程实现细节,以及实际调优中的关键考量因素(色差校正、动态场景适应等)。作者结合15年经验,给出了包括验证方法、网格参数设计、产线标定等实用性建议,强调LSC算法应与光学设计协同优化,才能达到最佳效果。

sundong_81的博客 41
上一篇: 遥感&机器学习入门实战教程|Sklearn案例⑤:集成学习方法全览
下一篇: 遥感&机器学习入门实战教程|Sklearn案例⑦:特征选择与重要性分析
遥感AI实战
博客等级 码龄9年 1002粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遥感AI实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值