支持向量机:修订间差异

来自决策链云智库
无编辑摘要
 
(未显示2个用户的16个中间版本)
第5行: 第5行:
|simpleicon=Support Vector Machine_Pure.svg
|simpleicon=Support Vector Machine_Pure.svg
|developer=Dev.Team-DPS
|developer=Dev.Team-DPS
|productionstate=PC可用
|productionstate={{图标文件|Win}} / {{图标文件|W10}} Win10及以上可用
|productionstatedesc=在[[DecisionLinnc | V1.0]]部署
|productionstatedesc=在[[Update:DecisionLinnc 1.0.0.8|V1.0]]部署
|nodeenglishname=[[Has english name::Support Vector Machine]]
|nodeenglishname=Support Vector Machine
|abbreviation=[[Has abbreviation::SVM]]
|abbreviation=SVM
|funcmaincategory=机器学习
|funcmaincategory=机器学习
|funcsubcategory=[[DataML Lv1 Cat::分类训练器]]
|funcsubcategory=[[DataML Lv1 Cat::分类训练器]]
第20行: 第20行:
|nodeavailableplotlist=nodenoplotoutput
|nodeavailableplotlist=nodenoplotoutput
|nodeavailabletablelist=Table_For_Downstream
|nodeavailabletablelist=Table_For_Downstream
|nodeconfiguration=VariableList;DropManu;Text
|nodeconfiguration=VariableList;DropMenu;Text
|nodeinputports=WorkFlow-Control ➤;Transfer-Table ■
|nodeinputports=WorkFlow-Control ➤;Transfer-Table ■
|nodeoutputports=WorkFlow-Control ➤;Transfer-Model ▶;Transfer-Table ■
|nodeoutputports=WorkFlow-Control ➤;Transfer-Model ▶;Transfer-Table ■
第27行: 第27行:
|nextnode=[[梯度提升树]]
|nextnode=[[梯度提升树]]
}}
}}
==算法概述==
==算法概述==
在机器学习中,支持向量机(Support Vector Machine,SVM,也称为支持向量网络<ref>{{cite journal |title=Support-vector networks |author=Cortes, Corinna and Vapnik, Vladimir |journal=Machine Learning |volume=20 |pages=273–297 |year=1995 |publisher=Springer}}</ref>)主要用于分析数据进行分类和回归分析。Vladimir Vapnik及其同事在at&T Bell实验室开发。SVM是研究最多的模型之一,基于Vapnik和Chervonenkis提出的VC理论(Vapnik–Chervonenkis theory)。


除了执行线性分类外,SVM还可以使用所谓的内核技巧有效地执行非线性分类,将其输入隐式映射到高维特征空间中。SVM也可以用于回归任务。Hava Siegelmann和Vladimir Vapnik创建的支持向量聚类<ref>{{cite journal |title=Support vector clustering |author=Ben-Hur, Asa and Horn, David and Siegelmann, Hava and Vapnik, Vladimir N. |journal=Journal of Machine Learning Research |volume=2 |pages=125–137 |year=2001}}</ref>算法应用支持向量机算法中开发的支持向量的统计信息对未标记的数据进行分类。这些数据集需要无监督的学习方法,这些方法试图找到数据的自然聚类,然后根据这些聚类映射新数据。


==示例代码-支持向量机分类节点==
==示例代码-支持向量机分类节点==
第48行: 第49行:


=='''节点使用指南'''==
=='''节点使用指南'''==
* 最适用的场景:决策树可用于解决分类问题,其中目标是将数据分为不同的类别或预测数据的类别。
* 最适用的场景:可用于解决分类问题,其中目标是将数据分为不同的类别或预测数据的类别。
* 处理的数据类型:结局变量为二分类,特征变量大多数为连续型的变量。
* 处理的数据类型:结局变量为二分类,特征变量大多数为连续型的变量。
===变量配置===
===变量配置===
第56行: 第57行:
===参数配置===
===参数配置===
* 设置随机数:控制模型的随机性。
* 设置随机数:控制模型的随机性。
* 拆分质量评估方法选择:
* 正则化参数:正则化参数是机器学习算法中的一个重要参数,用于控制模型的复杂度并防止过拟合(Overfitting)。选择适当的正则化参数对于获得良好的模型性能非常重要。默认为1.0。
** 'friedman mse',
* 核函数选择:核函数(Kernel Function)是一种用于衡量数据之间相似性的函数。核函数通常用于支持向量机(Support Vector Machines)和核方法(Kernel Methods)等算法中,用于将低维数据映射到高维特征空间,从而更好地进行分类或回归。
** 'squared error'。
** linear:线性核(常用),
* 学习率:算法通过学习率缩小每棵树的贡献差距。默认值为0.1。
** poly:多项式,
* Boosting次数:执行boosting算法的次数。梯度增强对于过度拟合是相当稳健的,因此大量通常会带来更好的性能。
** RBF:高斯核(常用),
* 子样本分数:用于拟合各个基础学习器的样本比例。如果小于 1.0,则会导致随机梯度提升。选择会导致方差减少和偏差增加。值必须在范围内。子样本分数取值范围(0.0, 1.0]。
** sigmoid,
* 损失函数算法选择:衡量分割质量的函数。支持的算法为
** precomputed。
** 'exponential',
** 'log_loss'。
* 最大深度:树的最大深度。如果没有,则扩展节点,直到所有叶子都是纯的或直到所有叶子包含少于"最小拆分样本数"的样本。
* 最小拆分样本数:分裂内部节点所需的最小样本数。
* 叶节点最小样本数:叶节点所需的最小样本数。该参数仅当任何深度的分割点在左右分支中至少留下训练样本时,才会被考虑。这可能具有使模型平滑的效果,尤其是在回归中。
* 最大特征数:寻找最佳分割时要考虑的特征数量。
* 最大叶节点数:以最佳优先的方式种植一棵树。最佳节点定义为杂质的相对减少。如果没有,则叶节点数量不受限制。
* 最小不纯度衰减阈值:如果分裂导致杂质减少大于或等于该值,则节点将被分裂。


===注意事项===
===注意事项===
第79行: 第72行:
== 参考文献 ==
== 参考文献 ==
{{reflist}}
{{reflist}}


{{Navplate AlgorithmNodeList}}
{{Navplate AlgorithmNodeList}}


[[Category:分类训练器]]
[[Category:分类训练器]]

2024年1月22日 (一) 10:48的最新版本

Support Vector Machine.png
节点状态
Windows / Windows 10 Win10及以上可用
V1.0部署
支持向量机Support Vector Machine.svg
节点开发者决策链算法研发部 (Dev.Team-DPS)
节点英文名Support Vector Machine
功能主类别机器学习
英文缩写SVM
功能亚类别分类训练器
节点类型数据挖掘
开发语言Python
节点简介

支持向量机(Support Vector Machine,简称SVM)是一种广泛应用于分类和回归问题的监督学习算法。它的目标是找到一个最优的超平面或者决策边界,可以将不同类别的样本分开,并且具有较好的泛化能力。

端口数量与逻辑控制(PC)
Input-入口2个
Output-出口3个
Loop-支持循环
If/Switch-支持逻辑判断
输入输出
可生成图片类型(推荐)
可生成数据表类型(推荐)
相关节点
上一节点决策树
下一节点梯度提升树



算法概述

在机器学习中,支持向量机(Support Vector Machine,SVM,也称为支持向量网络[1])主要用于分析数据进行分类和回归分析。Vladimir Vapnik及其同事在at&T Bell实验室开发。SVM是研究最多的模型之一,基于Vapnik和Chervonenkis提出的VC理论(Vapnik–Chervonenkis theory)。

除了执行线性分类外,SVM还可以使用所谓的内核技巧有效地执行非线性分类,将其输入隐式映射到高维特征空间中。SVM也可以用于回归任务。Hava Siegelmann和Vladimir Vapnik创建的支持向量聚类[2]算法应用支持向量机算法中开发的支持向量的统计信息对未标记的数据进行分类。这些数据集需要无监督的学习方法,这些方法试图找到数据的自然聚类,然后根据这些聚类映射新数据。

示例代码-支持向量机分类节点

该节点使用Python编写,调用scikit-learn包[3]。以下为示例代码:

import numpy as np
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler

X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
y = np.array([1, 1, 2, 2])
from sklearn.svm import SVC
clf = make_pipeline(StandardScaler(), SVC(gamma='auto'))
clf.fit(X, y)

拟合后,模型可以用于预测样本的类别,可以在通用预测模块实现内外部测试集的预测。

节点使用指南

  • 最适用的场景:可用于解决分类问题,其中目标是将数据分为不同的类别或预测数据的类别。
  • 处理的数据类型:结局变量为二分类,特征变量大多数为连续型的变量。

变量配置

  • 选择特征变量:作为特征进行学习的变量(X),多选。
  • 选择目标变量:作为结局的二分类变量(y),单选。

参数配置

  • 设置随机数:控制模型的随机性。
  • 正则化参数:正则化参数是机器学习算法中的一个重要参数,用于控制模型的复杂度并防止过拟合(Overfitting)。选择适当的正则化参数对于获得良好的模型性能非常重要。默认为1.0。
  • 核函数选择:核函数(Kernel Function)是一种用于衡量数据之间相似性的函数。核函数通常用于支持向量机(Support Vector Machines)和核方法(Kernel Methods)等算法中,用于将低维数据映射到高维特征空间,从而更好地进行分类或回归。
    • linear:线性核(常用),
    • poly:多项式,
    • RBF:高斯核(常用),
    • sigmoid,
    • precomputed。

注意事项

  • 不支持带空值运算,用多重插补插补空值进行插补,
  • 节点不出图,
  • 导入该节点的数据端口为训练数据集,导入前注意转换。

参考文献

  1. Cortes, Corinna and Vapnik, Vladimir (1995). "Support-vector networks". Machine Learning. Springer. 20: 273–297.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  2. Ben-Hur, Asa and Horn, David and Siegelmann, Hava and Vapnik, Vladimir N. (2001). "Support vector clustering". Journal of Machine Learning Research. 2: 125–137.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  3. Kramer, Oliver (2016). "Scikit-learn". Machine learning for evolution strategies. Springer: 45--53.


查找其他类别的节点,请参考以下列表