Созданная на основе NumPy, SciPy и Matplotlib, Scikit-learn — это надежная библиотека, используемая в машинном обучении.

Почему Scikit Learn?

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

Установка

Использование пункта

pip install -U scikit-learn

Использование конды

conda install scikit-learn

Функции

Библиотека Scikit-learn больше ориентирована на моделирование данных, чем на загрузку, обработку и обобщение данных. Вот некоторые из популярных групп моделей, предоставляемых Sklearn:

  1. Алгоритмы контролируемого обучения: линейная регрессия, машина опорных векторов (SVM), дерево решений и т. д.
  2. Алгоритмы обучения без учителя: кластеризация, факторный анализ, анализ основных компонентов, нейронные сети без учителя и т. д.
  3. Перекрестная проверка: проверка точности контролируемых моделей.
  4. Dimension Reduction: для уменьшения количества атрибутов в данных для суммирования, визуализации и выбора функций.
  5. Методы ансамбля: для объединения прогнозов нескольких моделей с учителем и многих других…….

Шпаргалка

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

Вход :

from sklearn.datasets import load_iris   #imports the library 
iris = load_iris()   #import the dataset 'iris' to the variable iris
X = iris.data   #store the features into the variable X
y = iris.target   #stores the label into the variable Y
feature_names = iris.feature_names  #stores the feature attributes 
target_names = iris.target_names   #stores the label attributes
print("Feature names:", feature_names)   #print feature name
print("Target names:", target_names)   #print label name
print("\nFirst 10 rows of X:\n", X[:5])   #print first 5 entry

Имена функций — это список всех имен функций (ввод).

Целевые имена — это список всех имен меток (вывод).

Вывод :

Feature names: ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
Target names: ['setosa' 'versicolor' 'virginica']
First 10 rows of X:
[
   [5.1 3.5 1.4 0.2]
   [4.9 3. 1.4 0.2]
   [4.7 3.2 1.3 0.2]
   [4.6 3.1 1.5 0.2]
   [5. 3.6 1.4 0.2]
]

Разделение набора данных

Вход :

from sklearn.model_selection import train_test_split  #import the library

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 1)   #divide 70% data for training & 30% data for testing purpose with same data given all the time by random state

print(X_train.shape)   #print the shape of input train data
print(X_test.shape)   #print the shape of input test data
print(y_train.shape)   #print the shape of output train data
print(y_test.shape)   #print the shape of output test data

random_size — гарантирует, что разделение всегда будет одинаковым.

Вывод :

(105, 4)   #row * column
(45, 4)   #row * column   
(105,)   #row * column(0)
(45,)   #row * column(0)

Обучите модель

Вход :

from sklearn.neighbors import KNeighborsClassifier   #import the function
from sklearn import metrics  #import the function
classifier_knn = KNeighborsClassifier(n_neighbors = 3)
classifier_knn.fit(X_train, y_train)
y_pred = classifier_knn.predict(X_test)

print("Accuracy:", metrics.accuracy_score(y_test, y_pred))   # Finds the accuracy by comparing actual response values(y_test)with predicted response value(y_pred)

sample = [[5, 5, 3, 2], [2, 4, 3, 5]]   # Providing sample data and the model will make prediction out of that data
preds = classifier_knn.predict(sample)
pred_species = [iris.target_names[p] for p in preds] print("Predictions:", pred_species)

Вывод :

Accuracy: 0.9833333333333333
Predictions: ['versicolor', 'virginica']

KNeighborsClassifier: этот классификатор реализует обучение на основе k ближайших соседей, где k — целочисленное значение, указанное пользователем. Выбор значения k зависит от данных.

Приведенный выше график получен моим следующим кодом:

scores_list = []
for k in range(1,15):
   classifier = KNeighborsClassifier(n_neighbors=k)
   classifier.fit(X_train, y_train)
   y_pred = classifier.predict(X_test)
   scores_list.append(metrics.accuracy_score(y_test,y_pred))

Метрики: реализует функции, оценивающие ошибку прогнозирования для конкретных целей, таких как показатель точности (здесь).

Сохранение модели/сохранение модели

Как только мы обучим модель, она должна сохраняться для будущего использования, чтобы нам не нужно было переобучать ее снова и снова. Это делается с помощью функций dump и load пакета joblib.

Вход :

from sklearn.externals import joblib
joblib.dump(classifier_knn, 'iris_classifier_knn.joblib')   #save the model into file named iris_classifier_knn.joblib

Теперь объект можно перезагрузить из файла с помощью следующего кода

joblib.load('iris_classifier_knn.joblib')

Теперь вы можете приступить к базовым проектам с помощью sklearn.
Всего наилучшего ❤️