Classify
内置分类器列表 »Classify[{in1class1,in2class2,…}]
生成一个 ClassifierFunction,尝试根据范例 ini 预测 classi.
Classify[data,input]
试图从给出的训练范例中预测与 input 相关的输出.
Classify[data,input,prop]
计算与预测值相关的指定属性 prop.
更多信息和选项
- Classify 用于训练算法,根据观察到的模式将数据归类.
- 分类是一种监督学习方法,通常用于执行电子邮件过滤、图像和手写识别、基于模式识别的医疗诊断以及商业分析中的客户行为预测等任务.
- Classify 可被用于各种类型的数据,包括数字、文字、声音、图像和这些类型的组合.
- 复杂的表达式会自动转换为数字或类等更简单的特征.
- 通过对训练数据进行交叉验证,选择最终的模型类型和超参数值.
- 训练 data 的结构如下:
-
{in1out1,in2out2,…} 输入和输出之间的 Rule 列表 {in1,in2,…}{out1,out2,…} 输入和相应输出之间的 Rule {list1,list2,…}n 输出每个 List 的第 n 个元素 {assoc1,assoc2,…}"key" 输出每个 Association 的 "key" 元素 Dataset[…]column Dataset 的指定 column 作为输出 - 此外,特殊形式的 data 还包括:
-
"name" 内置的分类函数 FittedModel[…] 转换为 ClassifierFunction 的拟合模型 NetChain[…],NetGraph[…] 将代表分类器的网转换为 ClassifierFunction - 每个输入 ini 的范例可以是一个单独的数据元素、一个列表 {feature1, …} 或一个关联关系 <"feature1"value1,… >.
- 每个范例输出的 outi 都可以是任何原子表达式,如字符串、整数或布尔值.
- 预测属性 prop 与 ClassifierFunction 相同. 包括:
-
"Decision" 基于概率和效用函数最佳类别 "TopProbabilities" 最可能类别的概率 "TopProbabilities"n n 个最可能类别的概率 "Probability"class 特定类别的概率 "Probabilities" 所有可能类别的概率的关联 "SHAPValues" 每个样例的 Shapley 加性特征解释 "Properties" 所有可用属性的列表 - "SHAPValues" 通过比较将不同的特征集合删除,然后合成所得到的预测来评估特征的贡献. 选项 MissingValueSynthesis 可用于指定如何合成缺失的特征. SHAP 解释是以相对于 class training prior 的优势比乘数 (odds ratio multiplier) 给出的. 可通过 "SHAPValues"n 控制用于对 SHAP 解释进行数值估计的样本的数量.
- 内置分类器函数的例子包括:
-
"CountryFlag" 国旗图像属于哪个国家 "FacebookTopic" Facebook 帖子的主题 "FacialAge" 根据面部估计年龄 "FacialExpression" 面部显示的表情类型 "FacialGender" 面部看上去是什么性别 "Language" 自然语言文本是哪一种 "LanguageExtended" 文本的语种,包括稀有语种 "NameGender" 人名属于什么性别 "NotablePerson" 图像属于哪位著名人物 "NSFWImage" 图像是否被认为“工作场合不宜” "Profanity" 文本是否包含不雅文字 "ProgrammingLanguage" 文字属于哪种编程语言 "Sentiment" 社交媒体文章的情绪 "Spam" 是否为垃圾邮件 "SpokenLanguage" 音频录音使用的自然语言 - 可以给出以下选项:
-
AnomalyDetector None 分类器使用的异常检测器 AcceptanceThreshold Automatic 异常检测器的的稀有概率阈值 ClassPriors Automatic 类别的显式先验概率 FeatureExtractor Identity 怎样提取学习用的特征 FeatureNames Automatic 分配给输入数据的特征的名称 FeatureTypes Automatic 假定输入数据具有的特征的类型 IndeterminateThreshold 0 低于什么概率返回 Indeterminate Method Automatic 使用何种分类算法 MissingValueSynthesis Automatic 怎样合成缺失值 PerformanceGoal Automatic 优化的目标 RandomSeeding 1234 应该在伪随机发生器内部完成的种子指定方式 RecalibrationFunction Automatic 怎样对类别概率进行后处理 TargetDevice "CPU" 执行培训的目标设备 TimeGoal Automatic 花多长时间来训练分类器 TrainingProgressReporting Automatic 如何汇报训练过程中的进度 UtilityFunction Automatic 作为实际和预测类别的函数的效用值 ValidationSet Automatic 验证所生成的模型所用的数据 - Method 的可能设置包括:
-
"ClassDistributions" 用学到的分布进行分类 "DecisionTree" 使用决策树进行分类 "GradientBoostedTrees" 使用用梯度增强训练的全体树进行分类 "LogisticRegression" 使用特征的线性组合概率分类 "Markov" 在特征序列上使用马尔可夫模型分类(仅适用于文本、令牌包等) "NaiveBayes" 通过假定特征的概率独立性分类 "NearestNeighbors" 从最近邻例子分类 "NeuralNetwork" 利用人工神经网络分类 "RandomForest" 使用决策树 Breiman–Cutler 集合分类 "SupportVectorMachine" 用支持向量机进行分类 - 使用 FeatureExtractor"Minimal" 表示内部预处理应尽可能简单.
- PerformanceGoal 的可能设置包括:
-
"DirectTraining" 直接在整个数据集上培训,不进行模型搜索 "Memory" 最小化分类器的存储需求 "Quality" 最大化分类器的准确性 "Speed" 最大化分类器的速度 "TrainingSpeed" 最小化生成分类器的时间 Automatic 自动权衡速度、精度和存储器之间的分配 {goal1,goal2,…} 自动合并 goal1、goal2 等 - 下列设置可以用于 TrainingProgressReporting:
-
"Panel" 显示一个动态更新的图形面板 "Print" 使用 Print 定期报告信息 "ProgressIndicator" 显示简单的 ProgressIndicator "SimplePanel" 动态更新面板,无需学习曲线 None 不报告任何信息 - RandomSeeding 的可能设置包括:
-
Automatic 每次调用函数时都会自动重新设置种子 Inherited 使用外部种子随机数 seed 使用明确的整数或字符串作为种子 - 在 Classify[ClassifierFunction[…],FeatureExtractorfe] 中,FeatureExtractorFunction[…] fe 会前置在已存在的特征提取器中.
- Information 可以在获得的 ClassifierFunction[…] 上使用.
范例
打开所有单元关闭所有单元基本范例 (2)
范围 (33)
数据格式 (7)
数据类型 (13)
数量 (1)
内置分类器 (9)
使用 "Language" 内置分类器检测文本写入所用的语言:
用选项 ClassPriors 将分类器限制为某几种语言:
使用 "FacebookTopic" 内置分类器检测 Facebook 帖子的主题:
不被识别的主题或语言将返回 Indeterminate:
使用 "CountryFlag" 内置分类器根据国旗识别国家:
使用 "NameGender" 内置分类器根据人名得到此人的可能性别:
使用 "NotablePerson" 内置分类器来决定给定图像描述的是哪位著名人物:
使用 "Sentiment" 内置分类器来推断社交媒体信息的情绪:
使用 "Profanity" 内置分类器对含有强烈语言的文本返回 True:
选项 (23)
AnomalyDetector (1)
ClassPriors (1)
FeatureExtractor (3)
在简单数据集上训练一个 FeatureExtractorFunction:
用特征提取函数作为 Classify 的预处理步骤:
FeatureNames (2)
在一个具有命名特征的训练集上训练分类器,并使用 FeatureNames 设置它们的顺序:
FeatureTypes (2)
IndeterminateThreshold (1)
Method (3)
MissingValueSynthesis (1)
设置缺失值合成,在给定已知值的情况下用最可能的值替换缺失变量(这是默认行为):
对许多随机插补进行平均通常是最好的策略,并允许获得由插补引起的不确定性:
用 "KernelDensityEstimation" 分布来决定替补值,对有缺失值的样例进行分类:
训练时提供已有的 LearnedDistribution,在训练期间及后续的计算中用来对缺失值进行插补:
指定已有的 LearnedDistribution 针对单次计算合成缺失值:
RecalibrationFunction (1)
PerformanceGoal (1)
TargetDevice (1)
在系统默认的 GPU 上使用神经网络培训分类器并查看 AbsoluteTiming:
TimeGoal (2)
TrainingProgressReporting (1)
UtilityFunction (1)
应用 (10)
泰坦尼克号生还 (2)
费雪鸢尾花卉 (3)
图像识别 (3)
特征说明 (1)
使用 "SHAPValues" 属性估算范例中每个像素对预测类别的影响:
利用 Log 将“几率乘数”SHAP 值转换为以 0 为中心的刻度:
可能存在的问题 (1)
巧妙范例 (2)
在该盒框中绘图,检验在数据集 ExampleData[{"MachineLearning","MNIST"}] 训练的逻辑分类器:
文本
Wolfram Research (2014),Classify,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Classify.html (更新于 2024 年).
CMS
Wolfram 语言. 2014. "Classify." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/Classify.html.
APA
Wolfram 语言. (2014). Classify. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Classify.html 年