自定义对象的分类

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

例如,我有一个对象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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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