目录
Weka算法翻译(部分)
只翻译了感兴趣的一些算法,都是一些简单的算法。
1. 属性选择算法(select attributes)
1.1 属性评估方法
CfsSubsetEval:通过考虑每个特征的单独预测能力以及它们之间的冗余成都来评估属性子集的价值
ClassifierAttributeEval:使用用户指定的分类器评估属性的值
ClassifierSubsetEval:对训练数据或单独的测试集评估属性子集
CorrelationAttributeEval:通过度量属性与类之间的相关性来评估属性的价值
GainRatioAttributeEval:通过测量相对于类的增益比来评估属性的价值
InfoGainAttributeEval:通过度量与类相关的信息增益来评估属性的价值
OneRAttributeEval:使用OneR分类器来评估属性的价值
-
PrincipalComponents:对数据进行主成分分析和转换
与Ranker搜索结合使用降维是通过选择足够的特征向量来解释原始数据中某些百分比的方差来实现的 - 默认0 95(95%)属性噪声可以通过转换到PC空间来过滤,从而消除了一些 最差的特征向量,然后转换回原始空间。
ReliefFAttributeEval:通过重复采样实例并考虑相同和不同类的最近实例的给定属性的值来评估属性的价值。
可以对离散和连续类数据进行操作。SymmetricalUncertAttributeEval:通过测量关于类的对称不确定性来评估属性的价值。
WrapperSubseEval:使用学习方案评估属性集。
交叉验证用于估计一组属性的学习方案的准确性。
1.2 搜索方法
- BestFirst:搜索方法执行带回溯的贪婪爬山法。它可以从空属性集开始向前搜索,也可以从全集开始向后搜索,还可以从中间点(通过属性索引列表指定)开始双向搜索并考虑所有可能的单个属性的增删操作。
- GreedyStepwise:搜索方法贪婪搜索属性的子集空间。像BestFirst 搜索方法一样,它可以向前和向后搜索。但是,它不进行回溯。只要添加或删除剩余的最佳属性导致评估指标降低,就立即终止。
- Ranker:实际上不是搜索属性子集的方法,而是对单个属性进行排名的方法,与属性评估程序一起使用。
2. 分类算法
2.1 贝叶斯算法
- BayesNet:贝叶斯网络学习采用多种搜索算法和质量度量方法。贝叶斯网络分类器的基类,提供贝叶斯网络学习常用的数据结构(网络结构、条件分布等)和常用的算法工具如K2、B
- NaiveBayes:使用估计类的朴素贝叶斯分类器的类
基于训练数据的分析来选择数值估计器精度值。 因此,分类器不是UpdateableClassifier(在典型用法中使用零训练实例初始化) - 如果需要UpdateableClassifier功能,请使用NaiveBayesUpdateable分类器。 当使用零训练实例调用buildClassifier时,NaiveBayesUpdateable分类器将对数字属性使用默认精度0.1。 - NaiveBayesMultinomial:用于构建和使用多项朴素贝叶斯分类器的类。
- NaiveBayesMultinomialText:用于文本数据的多项式朴素贝叶斯。 直接(且仅)对String属性进行操作。 其他类型的输入属性被接受但在训练和分类期间被忽略
- NaiveBayesMultinomialUpdateable:用于构建和使用可更新的多项式朴素贝叶斯分类器的类。
- NaiveBayesUpdateable:使用估计类的朴素贝叶斯分类器的类。 这是NaiveBayes的可更新版本。当使用零训练实例调用buildClassifier时,此分类器将对数字属性使用默认精度0.1。
2.2 Functions
Logistic:用于构建和使用具有岭估计器的多项Logistic回归模型的类。虽然原始Logistic回归不处理实例权重,但我们稍微修改算法来处理实例权重。
MultilayerPerceptron:使用反向传播来学习多层感知器以对实例进行分类的分类器。网络可以手工构建或使用简单的启发式设置。 还可以在训练期间监视和修改网络参数。 此网络中的节点都是sigmoid(除了类是数字时,在这种情况下输出节点变为无阈值线性单位)。
SGD:实现随机梯度下降以学习各种线性模型(二元类SVM,二元类逻辑回归,平方损失,Huber损失和epsilon不敏感损失线性回归)。 全局替换所有缺失值并将名义属性转换为二进制值。 它还标准化所有属性,因此输出中的系数基于标准化数据。
对于数字类属性,必须使用平方,Huber或epsilon-insensitve损失函数。 Epsilon不敏感和Huber丢失可能需要更高的学习率。SGDText:实现随机梯度下降,用于学习文本数据的线性二元类SVM或二元类逻辑回归。 直接(且仅)对String属性进行操作。 其他类型的输入属性被接受但在训练和分类期间被忽略。
SimpleLogistic:用于构建线性逻辑回归模型的分类器。 使用简单回归函数作为基础学习者的LogitBoost用于拟合逻辑模型。 要执行的最佳LogitBoost迭代次数是交叉验证的,这会导致自动选择属性。
-
SMO:实现John Platt用于训练支持向量分类器的顺序最小优化算法。
此实现全局替换所有缺失值并将名义属性转换为二进制值。 它还默认将所有属性规范化。 (在这种情况下,输出中的系数基于标准化数据,而不是原始数据---这对于解释分类器很重要。)
使用成对分类(aka 1-vs-1)解决多类问题。
要获得适当的概率估计,请使用适合校准模型的选项到支持向量机的输出。 在多类情况下,使用Hastie和Tibshirani的成对耦合方法耦合预测概率。
注意:为了提高速度,在SparseInstances上操作时应关闭规范化。 VotedPerceptron:由Freund和Schapire实施的投票感知器算法。 全局替换所有缺失值,并将名义属性转换为二进制值。
2.3 Lazy
- IBK:K-最近邻分类器。 可以根据交叉验证选择合适的K值。 也可以做距离加权。
- KStar:K *是基于实例的分类器,即测试实例的类基于与其类似的那些训练实例的类,由一些相似性函数确定。 它与其他基于实例的学习者的不同之处在于它使用基于熵的距离函数。
- LWL:本地加权学习。 使用基于实例的算法来分配实例权重,然后由指定的WeightedInstancesHandler使用。
可以进行分类(例如使用朴素贝叶斯)或回归(例如使用线性回归)。
2.4 Meta
元学习(meta learning)的另一个更简单直观的说法叫让机器 “学会学习(learning to learn)”,目标是让机器可以从过往的任务中学习出某些知识、模式、或者算法的性质,可以灵活快速的指导新任务的学习,类似像人一样学会根据历史经验“举一反三”。
- AdaBoostM1:使用Adaboost M1方法提升名义类分类器的类。 只能解决名义上的阶级问题。 通常会显着提高性能,但有时会过度使用。
- AttributeSelectedClassifier:在传递给分类器之前,通过属性选择减少训练和测试数据的维度。
- Bagging:用于Bagging分类器以减少差异的类。 可以根据基础学习者进行分类和回归。
- ClassificationViaRegression:使用回归方法进行分类的类。 对类进行二值化,并为每个类值构建一个回归模型。
- CostSensitiveClassifier:一种元分类器,使其基本分类器对成本敏感。 可以使用两种方法来引入成本敏感性:根据分配给每个班级的总成本重新加权培训实例; 或预测具有最小预期错误分类成本的类(而不是最可能的类)。 通过使用Bagged分类器来改进基本分类器的概率估计,通常可以提高性能。
- CVParameterSelection:用于通过任何分类器的交叉验证执行参数选择的类。
- FilteredClassifier:用于在已通过任意过滤器的数据上运行任意分类器的类。 与分类器一样,过滤器的结构完全基于训练数据,过滤器将处理测试实例而不改变其结构。
如果存在不相等的实例权重或属性权重,并且过滤器或分类器无法处理它们,则在将实例和/或属性传递给过滤器或分类器之前,基于权重对实例和/或属性进行重新采样(视情况而定))。 - IterativeClassifierOptimizer:使用交叉验证或百分比分割评估来优化给定迭代分类器的迭代次数。
- LogitBoost:用于执行加性逻辑回归的类。
该类使用回归方案作为基础学习者进行分类,并且可以处理多类问题。 - MultiClassClassifier:用于处理具有2级分类器的多类数据集的元分类器。 该分类器还能够应用纠错输出代码以提高准确度。
- MultiClassClassifierUpdateable:用于处理具有2级分类器的多类数据集的元分类器。 该分类器还能够应用纠错输出代码以提高准确度。 基类分类器必须是可更新的分类器
- MultiScheme:用于从训练数据中使用交叉验证或训练数据上的表现来从几个中选择分类器的类。 基于正确百分比(分类)或均方误差(回归)来衡量绩效。
- RandomCommittee:用于构建可随机化基本分类器集合的类。 每个基本分类器使用不同的随机数种子构建(但基于一个相同的数据)。 最终预测是各个基本分类器生成的预测的直线平均值。
- RandomizableFilteredClassifier:FilteredClassifier的一个简单变体,它使用可随机化的过滤器(更具体地说,RandomProjection)和IBk作为基本分类器来实例化模型。 除此之外,并检查两个基本方案中的至少一个实现Randomizable接口,它实现了与FilteredClassifier完全相同的功能,它现在也实现了Randomizable。
- RandomSubSpace:该方法构造基于决策树的分类器,其在训练数据上保持最高准确度,并且随着其复杂性的增加而提高泛化精度。 分类器由通过伪随机选择特征向量的分量的子集而系统地构造的多个树组成,即,在随机选择的子空间中构造的树。
- Stacking:使用堆叠方法组合多个分类器。 可以做分类或回归。
- Vote:用于组合分类器的类。 可以使用不同的分类概率估计组合。
- WeightedInstancesHandlerWrapper:围绕任何分类器的通用包装器,以支持加权实例。
如果基类分类器未实现weka.core.WeightedInstancesHandler接口并且存在1.0以外的实例权重,则使用重量采样权重。 默认情况下,如果训练数据可以处理实例权重,则会将其传递给基本分类器。 但是,也可以强制使用重量采样。