【问题标题】:How to feed numeric data into a classifier?如何将数字数据输入分类器?
【发布时间】:2014-12-31 10:54:18
【问题描述】:

这对于有机器学习+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_digits
digits = load_digits()

from sklearn import svm
clf = 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]

对示例数据“数字”的最后一项进行分类/预测。

我认为 SVM 是适合我的目的的方法。但是如何在 sklearn 中加载我的数据以及如何使用它对新图像进行分类?我发现很多使用单词的例子,但没有一个使用简单数字的例子。

【问题讨论】:

    标签: python machine-learning numbers scikit-learn svm


    【解决方案1】:

    来自doc

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

    所以你必须构造两个 numpy 数组:第一个是这样的:

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

    第二个是

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

    【讨论】:

    • 我的输入数据既不是文件也不是字符串。我可以将其转换为一个,但这似乎效率低下。除此之外:结构本身是否合适??
    猜你喜欢
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 2018-03-09
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多