IDL 8.7.1带来了IDLMachine学习框架。IDL机器学习框架为使用机器学习程序处理数值数据提供了一种强大而灵活的方法。可以创建和训练模型,并将其应用于分类、聚类或回归分析。
友好提醒
阅读原文
或者访问网站获取原始PDF
http://www.enviidl.com/idlmachinelearning
本文将介绍IDL机器学习框架的基本概念和应用过程。
主要覆盖范围
数据准备:如何为机器学习准备数据;
分类:用例子训练一个预测离散产出类别的模型;
聚类:用例子训练一个模型,将数据集聚类成给定数量的组或聚类;
回归:用例子训练模型来预测一个连续的输出值。
-激活函数的定义:激活函数对于神经网络非常重要,引入了非线性特性。
一个
数据准备
机器学习的第一步是定义输入数据。输入数据是一组数值属性,输入模型得到输出结果。准备数据时有两个重要的考虑因素:
1)数据归一化:机器学习算法在处理归一化数据时可以得到最好的结果,如和。可以通过使用归一化函数来实现,比如idmllinearnormalizer,idmlrangennormalizer,idmltanhnormalizer,idmlunitnormalizer,idmlvariancenormalizer。这将在下面的例子中描述。
2)数据拆分:需要准备两组数据。一组用于训练模型,另一组用于验证准确性。建议不要使用相同的数据进行培训和验证。根据读取数据的方式,有两个程序可以帮助拆分数据:IDLmlShuffle和IDLmlPartition。其中IDLmlShuffle可以打乱特征和值的顺序。IDLmlPartition可以将数据分成两个或多个组,每个组包含特定数量的元素。
为了说明这些步骤,您首先需要读取一些数据:
注意:read_seeds_example_data的源代码位于:
…IDL 87 examples machine _ learning EAD _ seeds _ example _ data . pro
这个程序通过读取一个CSV文件获得两个数组:特征和标签。Features是一个7列210行的数组。每一列代表不同的属性,210行代表210个实例。标签是一个包含210个元素的字符串数组,它存储种子类型。
以下显示了一些要素和标签数组的值:
以下变量是准备好的数据:
part.train.features: 一个7列168行的features数组,用于训练;part.train.labels: 一个包含168个字符串元素的labels数组,用于训练;part.test.features: 一个7列42行的features数组,用于验证;part.test.labels: 一个包含42个字符串元素的labels数组,用于验证。2
把… 分类
IDL提供三种分类模型:
IDLmlFeedForwardNeuralNetwork神经网络
IDLmlSoftmax
idlmlsupportvectormachinecialization
下面显示了一个使用支持向量机模型的例子。
在加载和准备数据之后,下一步是定义一个分类器。根据准备的数据,可以知道有7个输入属性和3个可能的字符串输出结果,因此分类器模型定义如下:
接下来,训练模型。调用模型的训练方法,输入训练特征和标签:
请注意,SVM是唯一一个只需要调用一次Train方法的模型。其他分类器需要在循环中迭代训练。例如Softmax分类器:
然后我们需要对数据进行归一化。您可以使用任何规范化模型。这里使用的是IDLmlVarianceNormalizer。代码如下:
使用以下代码导入机器学习模型和规范化模型:
有关IDL机器学习的更多帮助,请参考IDL帮助的以下部分:
IDLHelp > Routines > Machine Learning1.《idl 【ENVI】IDL 8.7.1 机器学习框架》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《idl 【ENVI】IDL 8.7.1 机器学习框架》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/shehui/1668441.html