Вы программист на Python и ищете мощную библиотеку для машинного обучения? Если да, тогда вы должны принять во внимание scikit-learn. Scikit learn in python играет неотъемлемую роль в концепции машинного обучения и необходим для получения вашего Python для сертификации в области науки о данных. Эта шпаргалка по scikit-learn предназначена для тех, кто уже начал изучать пакет Python, но хочет иметь удобный справочный лист. Не волнуйтесь, если вы новичок и не знаете, как работает scikit-learn, эта шпаргалка по scikit-learn для машинного обучения даст вам краткую справку по основам, которые вы должны знать, чтобы начать работу.

Шпаргалка по Python для Scikit-learn

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

Базовый пример

Давайте создадим базовый пример с использованием библиотеки scikit-learn, которая будет использоваться для

  • Загрузите данные
  • Разделите данные на обучающие и тестовые,
  • Обучите свои данные с помощью алгоритма KNN и,
  • Предсказать результат
>>> from sklearn import neighbors, datasets, preprocessing
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.metrics import accuracy_score
>>> iris = datasets.load_iris() 
>>> X, y = iris.data[:, :2], iris.target
>>> X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=33)
>>> scaler = preprocessing.StandardScaler().fit(X_train)
>>> X_train = scaler.transform(X_train) 
>>> X_test = scaler.transform(X_test)
>>> knn = neighbors.KNeighborsClassifier(n_neighbors=5)
>>> knn.fit(X_train, y_train)
>>> y_pred = knn.predict(X_test)
>>> accuracy_score(y_test, y_pred)

Загрузка данных

Вам необходимо хранить числовые данные в массивах NumPy или разреженных матрицах SciPy. Вы также можете использовать другие числовые массивы, такие как Pandas DataFrame.

>>> import numpy as np
>>> X = np.random.random((10,5))
>>> y = np.array(['M','M','F','F','M','F','M','M','F','F','F'])
>>> X[X < 0.7] = 0

Тренируйся и тестируй

После загрузки данных вашей следующей задачей будет разделение набора данных на данные обучения и данные тестирования.

>>> from sklearn.model_selection import train_test_split
>>> X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

Предварительная обработка данных

Стандартизация

Стандартизация данных - это один из этапов предварительной обработки данных, который используется для изменения масштаба одного или нескольких атрибутов так, чтобы атрибуты имели среднее значение 0 и стандартное отклонение 1. Стандартизация предполагает, что ваши данные имеют распределение Гаусса (кривая колокола).

>>> from sklearn.preprocessing import StandardScaler
>>> scaler = StandardScaler().fit(X_train)
>>> standardized_X = scaler.transform(X_train)
>>> standardized_X_test = scaler.transform(X_test)

Нормализация

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

>>> from sklearn.preprocessing import Normalizer
>>> scaler = Normalizer().fit(X_train)
>>> normalized_X = scaler.transform(X_train)
>>> normalized_X_test = scaler.transform(X_test)

Бинаризация

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

>>> from sklearn.preprocessing import Binarizer
>>> binarizer = Binarizer(threshold=0.0).fit(X)
>>> binary_X = binarizer.transform(X)

Кодирование категориальных функций

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

>>> from sklearn.preprocessing import LabelEncoder
>>> enc = LabelEncoder()
>>> y = enc.fit_transform(y)

Вменение пропущенных значений

Класс Imputer в Python предоставит вам основные стратегии для вменения / заполнения пропущенных значений. Для этого используются средние, медианные значения или наиболее частое значение строки или столбца, в которых находятся пропущенные значения. Этот класс также позволяет кодировать различные пропущенные значения.

>>> from sklearn.preprocessing import Imputer
>>> imp = Imputer(missing_values=0, strategy='mean', axis=0)
>>> imp.fit_transform(X_train)

Создание полиномиальных функций

Полиномиальный признак генерирует новую матрицу признаков, которая состоит из всех полиномиальных комбинаций признаков со степенью меньше или равной указанной степени. Например, если входной образец является двумерным и имеет форму [a, b], то полиномиальные признаки 2-й степени будут [1, a, b, a², ab, b²].

>>> from sklearn.preprocessing import PolynomialFeatures
>>> poly = PolynomialFeatures(5)
>>> poly.fit_transform(X)

Создайте свою модель

Оценщик контролируемого обучения

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

# Linear Regression Algorithm
>>> from sklearn.linear_model import LinearRegression
>>> lr = LinearRegression(normalize=True)
# Naive Bayes Algorithm
>>> from sklearn.naive_bayes import GaussianNB
>>> gnb = GaussianNB()
# KNN Algorithm
>>> from sklearn import neighbors
>>> knn = neighbors.KNeighborsClassifier(n_neighbors=5)
# Support Vector Machines (SVM)
>>> from sklearn.svm import SVC
>>> svc = SVC(kernel='linear’)

Оценщик неконтролируемого обучения

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

# Principal Component Analysis (PCA)
>>> from sklearn.decomposition import PCA
>>> pca = PCA(n_components=0.95)
# K Means Clustering Algorithm
>>> from sklearn.cluster import KMeans
>>> k_means = KMeans(n_clusters=3, random_state=0)

Подгонка модели

Подгонка - это показатель того, насколько хорошо модель машинного обучения обобщается на данные, аналогичные тем, на которых она была обучена.

# For Supervised learning
>>> lr.fit(X, y) #Fits data into the model
>>> knn.fit(X_train, y_train)
>>> svc.fit(X_train, y_train)
# For Unsupervised Learning
>>> k_means.fit(X_train)#Fits data into the model
>>> pca_model = pca.fit_transform(X_train) #Fit to data, then transform it

Прогноз

Подгонка - это показатель того, насколько хорошо модель машинного обучения обобщается на данные, аналогичные тем, на которых она была обучена.

# For Supervised learning
>>> y_pred=svc.predict(np.random((2,5))) #predict label
>>> y_pred=lr.predict(x_test) #predict label
>>> y_pred=knn.predict_proba(x_test)#estimate probablity of a label
# For Unsupervised Learning
>>> y_pred=k_means.predict(x_test) #predict labels in clustering algorithm

Оценка производительности модели

Метрики классификации

Модуль sklearn.metrics реализует несколько функций потерь, оценки и полезности для измерения эффективности классификации.

# Mean Absolute Error
>>> from sklearn.metrics import mean_absolute_error
>>> y_true = [3, -0.5, 2]
>>> mean_absolute_error(y_true, y_pred)
# Mean Squared Error
>>> from sklearn.metrics import mean_squared_error
>>> mean_squared_error(y_test, y_pred)
# R² Score
>>> from sklearn.metrics import r2_score
>>> r2_score(y_true, y_pred)

Метрики кластеризации

# Adjusted Rand Index
>>> from sklearn.metrics import adjusted_rand_score
>>> adjusted_rand_score(y_true, y_pred)
# Homogeneity
>>> from sklearn.metrics import homogeneity_score
>>> homogeneity_score(y_true, y_pred)
# V-measure
>>> from sklearn.metrics import v_measure_score
>>> metrics.v_measure_score(y_true, y_pred)

Метрики регрессии

Модуль sklearn.metrics реализует несколько функций потерь, оценки и полезности для измерения эффективности регрессии.

# Accuracy Score
>>> knn.score(X_test, y_test)
>>> from sklearn.metrics import accuracy_score
>>> accuracy_score(y_test, y_pred)
# Classification Report
>>> from sklearn.metrics import classification_report
>>> print(classification_report(y_test, y_pred))
# Confusion Matrix
>>> from sklearn.metrics import confusion_matrix
>>> print(confusion_matrix(y_test, y_pred))

Перекрестная проверка

>>> from sklearn.cross_validation import cross_val_score 
>>> print(cross_val_score(knn, X_train, y_train, cv=4)) 
>>> print(cross_val_score(lr, X, y, cv=2))

Настройте свою модель

Поиск по сетке

GridSearchCV реализует методы «соответствия» и «оценки». Он также реализует «прогноз», «прогноз_проба», «функция решения», «преобразование» и «обратное преобразование», если они реализованы в используемом оценщике.

>>> from sklearn.grid_search import GridSearchCV
>>> params = {"n_neighbors": np.arange(1,3), "metric": ["euclidean", "cityblock"]}
>>> grid = GridSearchCV(estimator=knn, param_grid=params)
>>> grid.fit(X_train, y_train)
>>> print(grid.best_score_)
>>> print(grid.best_estimator_.n_neighbors)

Оптимизация случайных параметров

RandomizedSearchCV выполняет случайный поиск по гиперпараметрам. В отличие от GridSearchCV, не все значения параметров проверяются, а скорее фиксированное количество настроек параметров выбирается из указанных распределений. Число пробных настроек параметров задается n_iter.

>>> from sklearn.grid_search import RandomizedSearchCV
>>> params = {"n_neighbours": range(1,5), "weights":["uniform", "distance"]}
>>>rserach = RandomizedSearchCV(estimator=knn,param_distribution=params, cv=4, n_iter=8, random_state=5)
>>> rsearch.fit(X_train, Y_train)
>>> print(rsearch.best_score)

Загрузить шпаргалку по Python для Scikit-learn

Если вы хотите ознакомиться с другими статьями о самых популярных технологиях на рынке, таких как искусственный интеллект, DevOps, этический взлом, посетите официальный сайт Edureka.

Обязательно обратите внимание на другие статьи в этой серии, которые объяснят различные другие аспекты Python и Data Science.

1. Классификатор машинного обучения на Python

2. Вопросы для собеседования по Python

3. Инструменты машинного обучения

4. Библиотеки Python для науки о данных и машинного обучения

5. Чат-бот на Python

6. Коллекции Python

7. Модули Python

8. Навыки Python-разработчика

9. Вопросы и ответы на собеседовании ООП

10. Резюме для Python-разработчика

11. Исследовательский анализ данных в Python

12. Змейка с модулем Python Turtle

13. Зарплата разработчика Python

14. Анализ главных компонентов

15. Python vs C ++

16. Учебник по царапинам

17. Python SciPy

18. Метод регрессии наименьших квадратов

19. Шпаргалка по Jupyter Notebook

20. Основы Python

21. Программы-шаблоны Python

22. Генераторы в Python

23. Python Decorator

24. Python Spyder IDE

25. Мобильные приложения, использующие Kivy в Python

26. 10 лучших книг для изучения и практики Python

27. Робот-фреймворк с Python

28. Змейка на Python с использованием PyGame

29. Интервью с Django: вопросы и ответы

30. 10 лучших приложений Python

31. Хеш-таблицы и хэш-карты в Python

32. Python 3.8

33. Машина опорных векторов

34. Учебник по Python