Созданная на основе NumPy, SciPy и Matplotlib, Scikit-learn — это надежная библиотека, используемая в машинном обучении.
Почему Scikit Learn?
- Предоставляет эффективные инструменты для машинного обучения.
- Предоставьте статистическую модель, включая классификацию, регрессию, кластеризацию.
- Охватывает большинство задач машинного обучения и масштабируется до большинства проблем с данными.
Установка
Использование пункта
pip install -U scikit-learn
Использование конды
conda install scikit-learn
Функции
Библиотека Scikit-learn больше ориентирована на моделирование данных, чем на загрузку, обработку и обобщение данных. Вот некоторые из популярных групп моделей, предоставляемых Sklearn:
- Алгоритмы контролируемого обучения: линейная регрессия, машина опорных векторов (SVM), дерево решений и т. д.
- Алгоритмы обучения без учителя: кластеризация, факторный анализ, анализ основных компонентов, нейронные сети без учителя и т. д.
- Перекрестная проверка: проверка точности контролируемых моделей.
- Dimension Reduction: для уменьшения количества атрибутов в данных для суммирования, визуализации и выбора функций.
- Методы ансамбля: для объединения прогнозов нескольких моделей с учителем и многих других…….
Шпаргалка
Загрузка набора данных
Вход :
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.
Всего наилучшего ❤️