2016-11-06 3 views
-1

Я использую Python для написания собственных моделей машинного обучения для практики. Есть два способа, которыми я могу это сделать:Модели машинного обучения: должен ли я определять класс или функцию

  1. Напишите функцию, например. def logisticRegression(...):

  2. Напишите класс, например. class logisticRegression:

Очевидно, что оба будут работать. Но что более Pythonic?

+2

, но для использования «pythonic» используйте 'def logistic_regression' или' class LogisticRegression' –

+1

Это, к сожалению, не в тему, поскольку здесь нет четкого правильного ответа и подлежит обсуждению, поскольку существует несколько факторов для примите во внимание. Проектный подход для модели обучения, вероятно, потребует некоторой мысли и структуры классов, чтобы помочь архитектору более читаемое поддерживаемое решение. Кроме того, как уже упоминалось в комментарии выше, стиль именования является частью * pythonic *, поэтому вы должны посмотреть на [Руководство по стилю] (https://www.python.org/dev/peps/pep-0008/) – idjaw

+0

Кроме того, здесь объясняется [что такое Pythonic] (http://blog.startifact.com/posts/older/what-is-pythonic.html). Кроме того, откройте свой интерпретатор и введите 'import this'. Прочтите это тоже. :) – idjaw

ответ

1

Для меня имеет смысл идти с классом, поскольку вы можете сохранить свою модель в качестве экземпляра класса и иметь в качестве функций класса что-то вроде train() для инициализации модели и predict(), чтобы использовать вашу модель несколько раз без необходимости переподготовки.

Посмотрите на scikit-learn class for Logistic Regression, это имеет большой смысл и очень интуитивно понятен.

+0

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

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