如何将数值数据输入分类器?

对于有机器学习和sklearn经验的人来说,这可能非常简单,但我完全是个新手,现在遇到了困难。我试图根据三个数值特征将图像分类为“剪贴画”和“照片”。

我的数据集可能看起来像这样:

data = (    ("photo",   (213, 32, 2)),    ("clipart", (453, 465, 212)),    ("clipart", (23, 2, 6552)),    ("photo",   (8797, 0, 872)),    ("photo",   (67, 4325, 43)),    ("clipart", (11, 21, 77)),    ...)

每个项目包含以下数据:(图像类型, (特征1, 特征2, 特征3))

从sklearn文档中我得到了这个例子:

from sklearn.datasets import load_digitsdigits = load_digits()from sklearn import svmclf = svm.SVC(gamma=0.001, C=100.)clf.fit(digits.data[:-1], digits.target[:-1])svm.SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.001, kernel='rbf', max_iter=-1, probability=False, random_state=None, shrinking=True, tol=0.001, verbose=False)print clf.predict(digits.data[-1])>>>> [8]

这个例子对示例数据“digits”的最后一个项目进行了分类/预测。

我认为SVM是适合我的方法。但我该如何在sklearn中加载我的数据,以及如何使用它来分类新图像?我找到了很多使用单词的例子,但没有一个是处理简单数字的。


回答:

文档中:

数据集生成函数和svmlight加载器共享一个简单的接口,返回一个元组(X, y),其中X是一个n_samples x n_features的numpy数组,y是一个长度为n_samples的包含目标的数组。

所以你需要构建两个numpy数组:第一个像这样:

data = np.array([x[0] for x in data])

第二个像这样:

target = np.array([x[1] for x in data])

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中创建了一个多类分类项目。该项目可以对…

发表回复

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