Известные наборы данных

Материал из Викиконспекты
Перейти к: навигация, поиск

Известные наборы данных

MNIST

Описание

MnistExamples.png

Датасет MNIST — большой (порядка 60 000 тренировочных и 10 000 проверочных объектов) набор картинок с рукописными цифрами, часто используемый для тестирования различных алгоритмов распознавания образов. Он содержит черно-белые картинки размера 28x28 пикселей, исходно взятые из набора образков из бюро переписи населения США, к которым были добавлены тестовые образцы, написанные студентами американских университетов.

Результаты

На сайте[1] датасета можно найти список лучших результатов, достигнутых алгоритмами на это наборе данных. Так, худший из записанных результатов достигнут простым линейным классификатором (12% ошибок), а подавляющее большинство лучших результатов получены алгоритмами на основе нейронных сетей. Так, ансамбль из 35 сверточных нейронных сетей в 2012 году сумел получить всего 0.23% ошибок на датасете, что является очень хорошим результатом, вполне сравнимым с человеком.

Код

Простой пример, скачивающий набор данных и запускающий на нем один из классификаторов. Даже с уменьшением датасета в сто раз и не самым подходящим классификатором точность выше половины угаданных цифр — заметно лучше, чем случайная разметка.

Mnist-predict.png
 from sklearn.datasets import fetch_mldata
 import random
 from sklearn.utils import shuffle
 from numpy import arange
 mnist = fetch_mldata('MNIST original')
 indices = arange(len(mnist.data))
 randidx = random.sample(list(indices), 500)
 mnist.data = mnist.data[randidx]
 mnist.target = mnist.target[randidx]
 X = mnist.data
 Y = mnist.target
 train = len(X)//2
 clf = DecisionTreeClassifier(criterion="entropy", max_depth=5)
 clf.fit(X[:train], Y[:train])
 expected = Y[train:]
 predicted = clf.predict(X[train:])
 print("Classification report for classifier %s:\n%s\n"
       % (clf, metrics.classification_report(expected, predicted)))
   digit    precision    recall  f1-score   support
       0         0.68      0.58      0.62        26
       1         0.71      0.87      0.78        23
       2         0.29      0.24      0.26        25
       3         0.64      0.28      0.39        25
       4         0.50      0.54      0.52        28
       5         0.46      0.46      0.46        24
       6         0.47      0.62      0.54        24
       7         0.66      0.78      0.71        27
       8         0.32      0.60      0.42        15
       9         0.59      0.39      0.47        33
 avg/total       0.54      0.53      0.52       250 

CIFAR-10

Iris

Описание

Iris — небольшой набор данных для задачи классификации, опубликованный еще в 1936 году Робертом Фишером, используя данные биолога Эдгара Андерсона. В этом наборе данных представлены по 50 описаний цветков одного из трех типов — Ирис щетинистый (Iris setosa), Ирис виргинский (Iris virginica) и Ирис разноцветный (Iris versicolor).

Для каждого цветка измерены четыре величины — длина чашелистника (англ. sepal length), ширина чашелистника (sepal width), длина лепестка (англ. petal length), ширина лепестка (англ. petal width). Все цветки промаркированы одним из трех типов, что позволяет тестировать на нем алгоритмы классификации. Интересное наблюдение — один из классов цветков линейно отделим от двух других.

Пример

Длина чашелистника Ширина чашелистника Длина лепестка Ширина лепестка Класс
5.1 3.5 1.4 0.2 setosa
7.0 3.2 4.7 1.4 versicolor
6.3 3.3 6.0 2.5 virginica

Код

 from sklearn.datasets import load_iris
 from sklearn import svm, metrics
 from sklearn.utils import shuffle
 from sklearn.ensemble import RandomForestClassifier
 import numpy
 iris=load_iris()
 X = iris.data
 Y = iris.target
 X, Y = shuffle(X, Y)
 n = len(iris.data)
 train = n // 2
 clf = RandomForestClassifier(n_estimators=100, max_depth=2, random_state=0)
 clf.fit(X[:train], Y[:train])
 expected = Y[train:]
 predicted = clf.predict(X[train:])
 print("Classification report for classifier %s:\n%s\n"
     % (clf, metrics.classification_report(expected, predicted)))
      type  precision    recall  f1-score   support
         0       1.00      1.00      1.00        28
         1       0.95      0.88      0.91        24
         2       0.88      0.96      0.92        23
 avg / total     0.95      0.95      0.95        75


ImageNet