自定义对象的分类

我需要编写一个程序,能够根据对象的某些属性对其进行分类。通过使用已知属性的一系列已知对象进行训练,程序应该能够对新对象进行分类。

例如,我有一个对象A,其属性为:a=10b=1。我还训练了程序,使其知道a的值在5..15之间,b的值在0..2之间时,该对象会被分类为label1

随着程序的发展,我需要用已知数据进一步训练它,以便属性区间变得更加精确(从而提高分类准确性)。

我之前没有机器学习或相关领域的经验,我想知道我应该如何开始。我看过很多教程,但都是关于文本分类的,而且只涉及二元分类(即,积极或消极,是或否……只有两个选项)。我将从5-6个标签开始,并且它们的数量很快会增加。此外,对象的属性是整数。

任何建议都非常受欢迎!


回答:

机器学习是一个非常广泛的领域,因此第一步是明确你所寻找的,并熟悉你试图解决的子问题。

根据你的描述,你试图在监督学习方法中解决一个分类问题

我将从这里稍作改述:


分类问题在于识别一个观察属于哪个类别。

监督学习是一种“教”机器的方法。基本上,通过示例来训练算法(即:这个特定对象属于类X)。训练后,机器应该能够将其获得的知识应用于新数据。

k-NN算法是解决这类问题的最简单算法之一。我建议你熟悉它。


你可以在scipy中找到k-NN的实现。这里有一个使用它的教程链接

现在,回答你的具体问题:

只涉及二元分类(即,积极或消极,是或否……只有两个选项)

k-NN可以处理任何(有限的)类别数量,所以你没问题

此外,对象的属性是整数

K-NN通常使用连续空间——所以你需要将它们转换为浮点数。

将属性值映射到算法空间中的点并不是一个简单的问题(参见数据预处理,特别是关于归一化、特征提取和选择的文章)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注