Публичный аккаунт Сяочжи:WeaponZhi. Подпишитесь на официальный аккаунт и ответьтеAIПолучите материалы AI+Python и вводные видеоуроки по машинному обучению
Алгоритм машинного обучения, который нам нужно изучить в первую очередь, — это обучение с учителем, так что же такое обучение с учителем? Чтобы понять контролируемое обучение, мы должны сначала рассмотреть, как мы обычно программируем. Наш обычный метод кодирования — это своего рода жесткое кодирование.Короче говоря, когда мы сталкиваемся с проблемой, мы используем позитивное насильственное кодирование для обработки всех аспектов и логики проблемы с помощью кодирования, чтобы код мог шаг за шагом следовать нашим идеям. это, и, наконец, решить нашу данную проблему.
Например, предположим, что мы хотим написать код для определения пола человека. Сначала мы можем извлечь характеристики мужчин и женщин. Например, у мужчин может быть борода, кадык, а их рост обычно составляет xx. Затем мы можем написать некоторые условия суждения, основанные на этих атрибутах, и, наконец, реализовать алгоритм, а затем ввести атрибуты человека в алгоритм, и алгоритм выводит результат, говорящий вам, какого пола может быть человек.
Это может реализовать алгоритм, но есть две проблемы. Первый — это определение этих атрибутов.Атрибутов, определяющих пол человека, может быть много.Если атрибутов будет слишком много, писать алгоритмы вручную будет очень нецелесообразно. Во-вторых, влияние этих атрибутов на конечный результат ограничено, и всегда будут особые случаи.У некоторых мужчин просто не растут бороды, или у некоторых женщин очень высокий рост.При столкновении с таким частным случаем алгоритм очень Можно совершать ошибки, очевидно, невозможно достичь совершенства, просто полагаясь на хардкодинг.
Подход алгоритма обучения с учителем заключается в том, чтобы ввести в алгоритм некоторые заранее определенные образцы, эти образцы включают определенные атрибуты функций и конкретные выходные данные, такие как «человек ростом 1,8 метра, у него борода и кадык», это его входной образец, «Этот человек - мужчина» является его выходом. После того, как эти образцы с четкими входными данными и результатами будут введены в алгоритм обучения под наблюдением, он будет учиться и суммировать сам. По мере увеличения количества образцов правила суждения контролируемое обучение будет обучаться все более и более точным и зрелым. Затем, перед лицом образцов, которые он никогда раньше не видел, таких как «один метр шесть, без бороды и кадык», алгоритм вынесет суждение, основанное на предыдущих правилах, сообщая вам, какого пола может быть человек.
Мы называем атрибуты бороды и адамова яблока как Feature-Features, а выходной результат мужчины или женщины называется label-Label. Чтобы добиться такой функции, нам нужен классификатор, тогда весь наш контролируемый процесс обучения, вероятно, будет таким.
scikit-learn может помочь нам легко выполнить вышеуказанные требования.Если вы установили Anaconda, scikit-learn уже включен.Другие способы загрузки здесь не описываются.
Если вы используете Python для изучения машинного обучения,scikit-learn
Определенно библиотека машинного обучения, которую вы должны использовать,scikit-learn
Это очень консервативная библиотека, очень профессиональная, она работает только в области машинного обучения и никогда не будет делать никаких расширений вне области машинного обучения. Не только это, но и алгоритмы машинного обучения, используемые scikit-learn, — это хорошо зарекомендовавшие себя алгоритмы, которые часто являются наиболее эффективными и наиболее простыми в реализации. Таким образом, чтение реализации исходного кода scikit-learn также является очень хорошим способом обучения.
Ниже мы используем специальный код для демонстрации трех процессов, упомянутых выше.
Собирайте реальные тренировочные данные
В реальной среде приложения у нас есть различные способы получения данных, например, вы можете получать данные, читая существующие файлы, или динамически отслеживать данные и вводить часть данных для каждой полученной части данных. Давайте не будем так усложнять, используя приведенный выше пример оценки пола, мы просто моделируем несколько данных:
>> features = [[160,30,2.1],[170,15,2.3],[178,8,2.5],[188,10,2.8],[167,22,2.2]]
>> labels = [0,0,1,1,0]
особенности — это наши особенности, возьмем в качестве примера первые данные [160,30,2.1], 160 — рост, 30 — длина волос, 2,1 — окружность талии, единица измерения — футы. Ну, простите мое воображение, может быть, пример не очень хорош, короче говоря, в настоящее время мы используем рост, длину волос и окружность талии в качестве характеристик нашего гендерного суждения, конечно, вы также можете извлечь больше признаков, вот только для нас Easy тестировать. labels — это наши ярлыки, 0 означает, что человек женского пола, 1 означает, что человек — мужчина
Таким образом, мы выполнили первый шаг и собрали реальные данные.
обучить классификатор
После получения источника данных нам нужно выбрать классификатор для обучения этого набора данных. Здесь мы выбираем дерево решений. На данный момент вы можете игнорировать то, что такое дерево решений. Вы можете использовать его как форму реализации классификатора.
>> from sklearn import tree
>> clf = tree.DecisionTreeClassifier()
>> clf.fit(features,labels)
sklearn
То есть библиотека scikit-learn, мы вводим в библиотеку класс дерева решений, и используемfit()
функция для сопоставления функций и меток, чтобы наш классификатор был реализован,clf
закончил свое обучение.
делать прогнозы по данным
На самом деле, вы можете думать о классификаторе как о черном ящике. Благодаря некоторому обучению данных этот ящик имеет определенную способность судить. Когда вы снова вводите данные, он может получить соответствующий прогноз. Что касается конца ящика, что метод используется для указания правил, основанных на обучении данных, - это то, что делает выбранный вами алгоритм. Например, здесь мы выбираем дерево решений в качестве алгоритма для создания правил для классификатора. Конечно, у вас есть много алгоритмов на выбор. Также возможно реализовать алгоритм самостоятельно, что выходит за рамки нашей статьи. Затем мы используем реализованный классификатор для прогнозирования неизвестных данных.
>> print(clf.predict([[180, 15, 2.3]]))
[0]
Мы используемpredict()
функция для прогнозирования набора данных, которые классификатор никогда раньше не видел. Классификатор считает девочкой высокого мужчину ростом 1,8 метра с волосами длиной 15 см и талией 2,3 фута. Ну, вот идея этого.
Итак, это ваш первый код для машинного обучения. Разве это не просто и весело?
Использованная литература:Machine Learning Recipes with Josh Gordon
Добро пожаловать, чтобы обратить внимание на мой общедоступный номер