2012-06-07 1 views
4

Я занимаюсь машиной, используя scikit-learn, как рекомендовано в this question. К моему удивлению, он не обеспечивает доступ к фактическим моделям, которые он тренирует. Например, если я создаю SVM, линейный классификатор или даже дерево решений, он, похоже, не дает мне возможности увидеть параметры, выбранные для фактически обученной модели.Параметры модели Scikit-learn недоступны? Если это так, то альтернатива ML workbench?

Видение реальной модели полезно, если модель создается частично, чтобы получить более четкое представление о том, какие функции она использует (например, деревья решений). Увидеть модель также является важной проблемой, если вы хотите использовать Python для обучения модели и некоторого другого кода для ее реализации.

Я что-то упустил в scikit-learn или есть какой-то способ получить это в scikit-learn? Если нет, то какой хороший рабочий инструмент для машинного обучения, не обязательно в python, , в котором модели прозрачно доступны?

+0

Это называется scikit учиться, не SciPy sklearn. 'sklearn' - это имя модуля верхнего уровня библиотеки. –

+0

Doh! Благодарю. Моя ошибка, не знаю, о чем я думал. Вопрос исправлен. –

+0

BTW Я начал совершенствовать документацию лесных моделей, чтобы добавить новый абзац о том, как вычислить материал по значимости, поскольку он отсутствовал. Http://scikit-learn.org/dev/modules/ensemble.html#feature-importance- оценка – ogrisel

ответ

7

Установленные параметры модели хранятся непосредственно в качестве атрибутов экземпляра модели. Существует определенное соглашение об именах для этих установленных параметров: все они заканчиваются завершающим подчеркиванием в отличие от параметров конструктора, предоставленных пользователем (гиперпараметры a.k.a.), которых нет.

Тип установленных атрибутов зависит от алгоритма. Например, для ядро ​​Support Vector Machine у ​​вас будут векторы поддержки массивов, двойные коэффициенты и перехваты, а для случайных лесов и экстремально рандомизированных деревьев у вас будет коллекция бинарных деревьев (внутренне представленная в памяти как непрерывные массивы numpy для производительности: структура представления массивов).

Смотрите раздел Атрибуты строку документации каждой модели для более подробной информации, например, для SVC:

http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC

Для моделей деревьев на основе вы также вспомогательную функцию для создания graphivz_export из изученных деревьев :

http://scikit-learn.org/stable/modules/tree.html#classification

Чтобы найти значение функции в лесах модели вы также должны взглянуть на параметр compute_importances, s Е.Е. следующие примеры, например:

http://scikit-learn.org/stable/auto_examples/ensemble/plot_forest_importances.html#example-ensemble-plot-forest-importances-py

http://scikit-learn.org/stable/auto_examples/ensemble/plot_forest_importances_faces.html#example-ensemble-plot-forest-importances-faces-py

Смежные вопросы