Scikit learn - машинное обучение с использованием Python



Блог Scikit Learn познакомит вас с машинным обучением на python. Он включает вариант использования, в котором мы реализуем логистическую регрессию с помощью scikit learn.

В этом блоге мы будем обсуждать обучение Scikit на python. Прежде чем говорить о Scikit learn, нужно понять концепцию машинного обучения.и должен знать, как использовать . Благодаря машинному обучению вам не нужно собирать информацию вручную. Вам просто нужен алгоритм, а все остальное машина сделает за вас! Разве это не интересно? Scikit learn - одна из достопримечательностей, где мы можем реализовать машинное обучение с использованием Python. Этоэто бесплатная библиотека машинного обучения, которая содержит простые и эффективные инструменты для анализа данных и интеллектуального анализа данных.Я проведу вас по следующим темам, которые послужат основой для следующих блогов:

окна добавляют Java в путь

Что такое машинное обучение?

Машинное обучение - это тип искусственного интеллекта, который позволяет программным приложениям учиться на данных и более точно прогнозировать результаты без вмешательства человека. Но как это случилось? Для этого машину необходимо обучить на некоторых данных, и на их основе она определит шаблон для создания модели.Этот процесс получения знаний из данных и предоставления мощной информации - это все о машинном обучении. Обратитесь к изображению ниже, чтобы лучше понять его работу:





Машинное обучение - Scikit Learn - Edureka

Используя данные, система изучает алгоритм, а затем использует его для построения прогнозной модели. Позже мы корректируем модель или повышаем точность модели, используя данные обратной связи. Используя эти данные обратной связи, мы настраиваем модель и прогнозируем действие с новым набором данных. Мы будемобсуждать вариант использования одного из алгоритмических подходов, где мы будем обучать и тестировать данные, которые помогут вам лучше понять, подходят ли они для вашей конкретной проблемы или нет.



Далее, есть три типа машинного обучения:

    • Контролируемое обучение : Это процесс обучения алгоритма на основе обучающего набора данных. Контролируемое обучение - это когда вы генерируете функцию сопоставления между входной переменной (X) и выходной переменной (Y) и используете алгоритм для создания функции между ними. Это также известно как прогнозное моделирование, которое относится к процессу прогнозирования с использованием данных. Некоторые из алгоритмов включают линейную регрессию, логистическую регрессию, дерево решений, случайный лес и наивный байесовский классификатор. Далее мы обсудим вариант использования контролируемого обучения, когда мы обучаем машину, используя логистическая регрессия .
    • Неконтролируемое обучение : Это процесс, при котором модель обучается с использованием информации, которая не помечена. Этот процесс можно использовать для кластеризации входных данных в классы на основе их статистических свойств. Обучение без учителя также называется cанализ блеска, который означает группировку объектов на основе информации, содержащейся в данных, описывающих объекты или их взаимосвязь. Цель состоит в том, чтобы объекты одной группы были похожи друг на друга, но отличались от объектов другой группы. Некоторые из алгоритмов включают кластеризацию K-средних, иерархическую кластеризацию и т. Д.
    • Обучение с подкреплением: Обучение с подкреплением - это обучение посредством взаимодействия с пространством или окружающей средой.Агент RL учится на последствиях своих действий, а не на явном обучении. Он выбирает свои действия на основе своего прошлого опыта (эксплуатация), а также на основе нового выбора (исследование).

Обзор Scikit Learn

Scikit learn - это библиотека, используемая для машинного обучения на Python. Scikit learn - это библиотека с открытым исходным кодом, которая находится под лицензией BSD и может повторно использоваться в различных контекстах, поощряя академическое и коммерческое использование. Он предоставляет ряд контролируемых и неконтролируемых алгоритмов обучения на Python.Scikit learn состоит из популярных алгоритмов и библиотек. Кроме того, он также содержит следующие пакеты:



  • NumPy
  • Матплотлиб
  • SciPy (научный Python)

Чтобы реализовать Scikit learn, нам сначала нужно импортировать указанные выше пакеты. Если вы не знакомы с этими библиотеками, вы можете посмотреть мои предыдущие блоги на и . Вы можете загрузить эти два пакета с помощью командной строки или, если вы используете PYCharm, вы можете напрямую установить его, перейдя в свои настройки так же, как вы это делаете для других пакетов.

Далее аналогичным образом, вам необходимо импортировать Sklearn.Scikit learn построен на SciPy (Scientific Python), который необходимо установить, прежде чем вы сможете использовать Scikit-learn. Вы можете сослаться на это интернет сайт скачать то же самое. Кроме того, установите пакет Scipy и wheel, если его нет, вы можете ввести следующую команду:

pip install scipy

Я уже загрузил и установил его, вы можете обратиться к приведенному ниже снимку экрана, если возникнет какая-то путаница.

После импорта вышеупомянутых библиотек давайте копнем глубже и поймем, как именно используется Scikit learn.

Scikit learn поставляется с образцами наборов данных, например Ирис и цифры . Вы можете импортировать наборы данных и поэкспериментировать с ними. После этого вам нужно импортировать SVM, что означает машину опорных векторов. SVM - это форма машинного обучения, которая используется для анализа данных.

Давайте возьмем пример, где мы возьмем цифры набор данных, и он классифицирует числа для нас, например: 0 1 2 3 4 5 6 7 8 9. См. код ниже:

импортировать matplotlib.pyplot как plt из sklearn импортировать наборы данных из sklearn import svm digits = datasets.load_digits () print (digits.data)

Вывод -

[[0. 0. 5. ..., 0. 0. 0.] [0. 0. 0. ..., 10. 0. 0.] [0. 0. 0. ..., 16. 9. 0.] ..., [0. 0. 1. ..., 6. 0. 0.] [0. 0. 2. ..., 12. 0. 0.] [0. 0. 10. ..., 12. 1. 0.]]

Здесь мы только что импортировали библиотеки, SVM, наборы данных и распечатали данные. Это длинный массив цифровых данных, в котором хранятся данные. Он дает доступ к функциям, которые можно использовать для классификации цифры образцы. Затем вы также можете попробовать некоторые другие операции, такие как цель, изображения и т. Д. Рассмотрим пример ниже:

импортировать matplotlib.pyplot как plt из sklearn импортировать наборы данных из sklearn import svm digits = datasets.load_digits () print (digits.target) print (digits.images [0])

Вывод -

[0 1 2 ..., 8 9 8] // цель данных [[0. 0. 5. 13. 9. 1. 0. 0.] // изображение данных [0. 0. 13. 15. 10. 15. 5. 0.] [0. 3. 15. 2. 0. 11. 8. 0.] [0. 4. 12. 0. 0. 8. 8. 0.] [0. 5. 8. 0. 0. 9. 8. 0.] [0. 4. 11. 0. 1. 12. 7. 0.] [0. 2. 14. 5. 10. 12. 0. 0. ] [0. 0. 6. 13. 10. 0. 0. 0.]]

Как вы можете видеть выше, печатаются целевые цифры и изображение цифр. digits.target дает основную истину для цифра набор данных, то есть номер, соответствующий каждой цифре изображения. Затем данные всегда представляют собой 2D-массив, который имеет форму (n_samples, n_features), хотя исходные данные могли иметь другую форму. Но в случае цифр каждый исходный образец представляет собой изображение формы (8,8), и к нему можно получить доступ, используя цифры . образ.

Обучение и прогнозирование

Затем, в Scikit learn, мы использовали набор данных (выборка из 10 возможных классов, цифры от нуля до девяти), и нам нужно предсказать цифры, когда выдается изображение. Чтобы предсказать класс, нам понадобится оценщик который помогает предсказать классы, к которым принадлежат невидимые образцы. В Scikit learn у нас есть оценщик для классификации, который представляет собой объект Python, реализующий методы подходят (x, y) и предсказать (T). Давайте рассмотрим следующий пример:

import matplotlib.pyplot as plt из sklearn импорт наборов данных из sklearn import svm digits = datasets.load_digits () // набор данных clf = svm.SVC (gamma = 0.001, C = 100) print (len (digits.data)) x, y = digits.data [: - 1], digits.target [: - 1] // обучаем данные clf.fit (x, y) print ('Prediction:', clf.predict (digits.data [-1]) ) // прогнозирование данных plt.imshow (digits.images [-1], cmap = plt.cm.gray_r, interpolation = 'ближайший') plt.show ()

Вывод -

1796 г.
Прогноз: [8]


В приведенном выше примере мы сначала нашли длину и загрузили 1796 примеров. Затем мы использовали эти данные в качестве обучающих данных, где нам нужно протестировать последний элемент и первый отрицательный элемент. Кроме того, нам нужно проверить, правильно ли предсказала машина данные. Для этого мы использовали Matplotlib, где отображали изображение цифр.Итак, в заключение, у вас есть числовые данные, у вас есть цель, вы подходите и прогнозируете ее, и, следовательно, все готово! Это действительно быстро и легко, не так ли?

Вы также можете визуализировать целевые метки с изображением, просто обратитесь к приведенному ниже коду:

import matplotlib.pyplot as plt из sklearn import datasets from sklearn import svm digits = datasets.load_digits () # Объедините изображения и целевые метки в список images_and_labels = list (zip (digits.images, digits.target)) # для каждого элемента в списке для индекса, (изображение, метка) in enumerate (images_and_labels [: 8]): # инициализируем подзаголовок 2X4 в позиции i + 1 plt.subplot (2, 4, index + 1) # Отображаем изображения во всех подзаголовках plt.imshow (image, cmap = plt.cm.gray_r, interpolation = 'ближайший') # Добавить заголовок к каждому подзаговору plt.title ('Training:' + str (label)) # Показать график plt. шоу()

Вывод-


Как вы можете видеть в приведенном выше коде, мы использовали функцию «zip», чтобы объединить изображения и целевые метки в список, а затем сохранить его в переменной, например images_and_labels. После этого мы проиндексировали первые восемь элементов в сетке 2 на 4 в каждой позиции. После этого мы просто отобразили изображения с помощью Matplotlib и добавили заголовок как «обучение».

Пример использования - Прогнозирование с использованием логистической регрессии

Постановка задачи - Автомобильная компания выпустила на рынок новый внедорожник. Используя предыдущие данные о продажах своих внедорожников, они хотят спрогнозировать категорию людей, которые могут быть заинтересованы в их покупке.

Для этого давайте посмотрим набор данных, в котором у меня есть UserId, пол, возраст, ориентировочная зарплата и купленные как столбцы. Это всего лишь образец набора данных, вы можете загрузить весь набор данных из Вот . Как только мы импортируем данные в pyCharm, это выглядит примерно так.

Теперь давайте разберемся с этими данными. Как вы можете видеть в приведенном выше наборе данных, у нас есть такие категории, как идентификатор, пол, возраст и т. Д. Теперь, основываясь на этих категориях, мы собираемся обучить нашу машину и спрогнозировать «нет». покупок. Итак, у нас есть независимые переменные как «возраст», «ожидаемая зарплата» и зависимая переменная как «купленные». Теперь применим контролируемое обучение, т.е. алгоритм логистической регрессии узнать количество покупок по имеющимся данным.

как реализовать кучу

Во-первых, давайте рассмотрим логистическую регрессию.

Логистическая регрессия - Логистическая регрессия дает результаты в двоичном формате, который используется для прогнозирования результата категориальной зависимой переменной. Он наиболее широко используется, когда зависимая переменная является двоичной, то есть количество доступных категорий равно двум, например, обычные выходы логистической регрессии:

  • И да и нет
  • Правда и ложь
  • Высокий и низкий
  • Прохождение и провал

Теперь, чтобы начать с кода, мы сначала импортируем эти библиотеки - Numpy, Matplotlib и Pandas. Импортировать панд в Pycharm довольно просто, выполнив следующие шаги:

Настройки -> Добавить пакет -> Панды -> Установить

После этого мы импортируем набор данных и отдельные зависимые переменные (купленные) и независимые (возраст, зарплата):

dataset = pd.read_csv ('Social_Network_Ads.csv') X = dataset.iloc [:, [2, 3]]. values ​​y = dataset.iloc [:, 4] .values ​​print (X) print (y)

Следующим шагом будет обучение и проверка данных. Общая стратегия состоит в том, чтобы взять все помеченные данные и разделить на подмножества обучения и тестирования, что обычно берется с соотношением 70-80% для обучающего подмножества и 20-30% для подмножества тестирования. Следовательно, мы создали наборы для обучения и тестирования, используя cross_validation.

из sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25, random_state = 0)

Мы также можем масштабировать входные значения для повышения производительности с помощью StandarScaler, как показано ниже:

из sklearn.preprocessing import StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

Теперь мы создадим нашу модель логистической регрессии.

из sklearn.linear_model import LogisticRegression classifier = LogisticRegression (random_state = 0) classifier.fit (X_train, y_train)

Мы можем использовать это и предсказать результаты нашего тестового набора.

y_pred = classifier.predict (X_test)

Теперь мы можем проверить, сколько прогнозов было точным, а сколько не использовалось матрица путаницы . Определим Y как положительные примеры, а N как отрицательные. Четыре результата сформулированы в матрице путаницы 2 * 2, как показано ниже:

как создать набор
из sklearn.metrics импортировать confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Вывод-

[[65 3] [8 24]]

Затем, основываясь на нашей матрице неточностей, мы можем вычислить точность. Итак, в нашем примере выше точность будет:

= TP + TN / FN + FP

= 65 + 24/65 +3+ 8 + 24

= 89%

Мы сделали это вручную! Теперь давайте посмотрим, как машина вычисляет то же самое для нас, для этого у нас есть встроенная функция «precision_score», которая вычисляет точность и распечатывает ее, как показано ниже:

from sklearn.metrics import precision_score // импортируем функцию precision_score print (precision_score (y_test, y_pred) * 100) // выводит точность

Вывод -

89,0

Ура! Таким образом, мы успешно реализовали логистическую регрессию с помощью Scikit learn с точностью 89%.

кликните сюда чтобы получить полный источник вышеприведенного прогноза с помощью библиотеки Python Scikit learn.

Этим мы рассмотрели только один из многих популярных алгоритмов, которые может предложить Python.Мы рассмотрели все основы Scikit, изучим библиотеку,так что вы можете начать практиковать прямо сейчас. Чем больше вы практикуетесь, тем больше вы узнаете. Следите за новостями в блогах о Python!

Есть вопрос к нам? Пожалуйста, упомяните это в разделе комментариев этого блога «Scikit learn», и мы свяжемся с вами как можно скорее. Чтобы получить более глубокие знания о Python и его различных приложениях, вы можете для онлайн-обучения с круглосуточной поддержкой и пожизненным доступом.