27、遥感图像分类技术:最大似然分类与高斯混合模型

遥感图像分类技术:最大似然分类与高斯混合模型

1. 最大似然分类基础

1.1 判别函数计算

在最大似然分类中,判别函数 $T_i$ 可通过以下公式计算:
$T_i = -4.744 + \ln p(x_i) - \frac{1}{2} \ln |C_i|$
该公式的计算依赖于第 $i$ 个光谱类别的先验概率和协方差矩阵的知识。

1.2 所需训练像素数量

为了对类别条件均值向量和协方差矩阵的元素进行合理估计,每个光谱类别必须有足够的训练像素。在 $N$ 维光谱空间中:
- 均值向量有 $N$ 个元素。
- 协方差矩阵是 $N \times N$ 的对称矩阵,有 $\frac{1}{2}N(N + 1)$ 个不同元素需要从训练数据中估计。
- 为避免矩阵奇异,至少需要 $N(N + 1)$ 个独立样本。由于每个 $N$ 维像素向量包含 $N$ 个样本(每个波段一个),因此所需的独立训练像素的最小数量为 $N + 1$。

然而,由于难以确保像素的独立性,通常会选择远多于这个最小数量的像素。建议每个光谱类别至少有 $10N$ 个训练像素,如果可能的话,每个类别可以达到 $100N$ 个。对于低维数据(如最多 10 个波段),通常可以达到 $10N$ 到 $100N$ 个训练像素,但对于高维数据集(如高光谱传感器生成的数据),为每个类别找到足够的训练像素往往不切实际,这使得传统最大似然分类器的可靠训练变得困难。在这种情况下,可以使用降维程序,包括特征选择方法。

当训练样本不足时,另一种方法是使用参数较少的分类算法。最大似然算法的问题在于需要估计协方差矩阵的所有元素,而最小距

源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
### 关于最大似然分类在Python中的实现 最大似然分类(Maximum Likelihood Classification, MLC)是一种基于概率理论的监督分类,广泛应用于遥感图像分析。该算假设每类数据服从正态分布,并通过计算像元属于各分类的概率来决定其类别归属。 以下是使用Python实现MLC的一个基本框架: #### 数据准备 为了应用最大似然分类,通常需要以下输入: - 训练样本:用于估计每一类别的均值向量和协方差矩阵。 - 测试数据集:待分类的数据。 可以利用`scikit-learn`库中的`GaussianMixture`模块或其他工具完成这一过程[^3]。 ```python from sklearn.mixture import GaussianMixture import numpy as np def maximum_likelihood_classification(data, labels, n_components=3): """ 实现最大似然分类器 参数: data (numpy.ndarray): 输入训练数据,形状为(n_samples, n_features) labels (numpy.ndarray): 对应标签数组,长度为n_samples n_components (int): 高斯混合模型组件数量,默认设为3 返回: gmm_model: 已拟合的最大似然分类模型对象 """ unique_labels = np.unique(labels) # 获取唯一标签列表 models = {} for label in unique_labels: subset_data = data[labels == label] # 提取对应类别的子集 model = GaussianMixture(n_components=n_components, covariance_type='full', random_state=0).fit(subset_data) models[label] = model return models # 假定已加载并预处理好data_train和label_train变量 models = maximum_likelihood_classification(data_train, label_train) def predict_class(models, test_sample): """ 利用多个高斯混合模型预测测试样例所属类别 参数: models (dict): 不同类别的高斯混合模型字典 test_sample (numpy.ndarray): 单个测试样例,形状为(1, n_features) 返回: predicted_label: 最大可能性对应的类别编号 """ max_log_prob = float('-inf') best_label = None for label, model in models.items(): log_prob = model.score(test_sample.reshape(1,-1)) # 获得对数概率密度函数值 if log_prob > max_log_prob: max_log_prob = log_prob best_label = label return best_label test_result = predict_class(models, new_test_sample) print(f"The predicted class is {test_result}.") ``` 上述代码展示了如何构建一个简单的最大似然分类器以及如何对其进行预测操作[^4]。 #### 结果评估 对于遥感影像而言,在执行完分类之后还需要进一步验证结果准确性。这可以通过对比地面实况图或者采用交叉验证等方式来进行定量评价指标如混淆矩阵、总体精度等的测算[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值