Scikit-learn — это библиотека Python, которая предоставляет широкий спектр инструментов для машинного обучения. Он построен на основе NumPy, SciPy и Matplotlib и предоставляет простой и эффективный интерфейс для работы с алгоритмами машинного обучения.

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

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

Начало работы с Scikit-learn

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

pip install scikit-learn

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

import sklearn

Теперь, когда мы импортировали Scikit-learn, давайте рассмотрим некоторые из его ключевых функций.

Предварительная обработка данных с помощью Scikit-learn

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

Scikit-learn предоставляет несколько инструментов для предварительной обработки данных, например:

  • Вменение: заполнение пропущенных значений в данных
  • Масштабирование: масштабирование данных таким образом, чтобы они имели нулевое среднее значение и единичную дисперсию.
  • Кодирование: преобразование категориальных переменных в числовые переменные

Вот пример использования Scikit-learn для предварительной обработки данных:

from sklearn.preprocessing import Imputer, StandardScaler, LabelEncoder
# Load the data
data = [[1, 2, None], [4, None, 6], [7, 8, 9]]
# Impute missing values with the mean of the column
imputer = Imputer()
data = imputer.fit_transform(data)
# Scale the data
scaler = StandardScaler()
data = scaler.fit_transform(data)
# Encode categorical variables
encoder = LabelEncoder()
labels = ['cat', 'dog', 'dog', 'cat']
labels_encoded = encoder.fit_transform(labels)

В этом примере мы сначала загружаем некоторые данные, которые содержат пропущенные значения. Затем мы используем класс Imputer, чтобы заполнить пропущенные значения средним значением столбца. Затем мы используем класс StandardScaler для масштабирования данных, чтобы они имели нулевое среднее значение и единичную дисперсию. Наконец, мы используем класс LabelEncoder для преобразования категориальных переменных «кошка» и «собака» в числовые переменные.

Создание моделей машинного обучения с помощью Scikit-learn

Набор данных по радужной оболочке содержит измерения длины чашелистика, ширины чашелистика, длины лепестка и ширины лепестка для трех видов цветков ириса — setosa, versicolor и virginica. Наша цель — обучить модель машинного обучения, которая может предсказать вид цветка ириса с учетом его размеров.

Вот как мы можем использовать Scikit-learn для достижения этой цели:

Шаг 1: Загрузка данных

Мы можем загрузить набор данных радужной оболочки, используя функцию load_iris() Scikit-learn:

from sklearn.datasets import load_iris
iris = load_iris()

Переменная iris — это объект Bunch, который содержит набор данных, а также некоторые метаданные.

Шаг 2: Разделение данных на обучающие и тестовые наборы

Далее нам нужно разделить данные на тренировочный и тестовый наборы. Мы будем использовать 80% данных для обучения и оставшиеся 20% для тестирования. Scikit-learn предоставляет функцию train_test_split(), которая упрощает эту задачу:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)

X_train и y_train — это обучающие функции и метки соответственно, а X_test и y_test — тестовые функции и метки.

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

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

from sklearn.ppreprocessing import StandardScaler
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

Мы подгоняем объект StandardScaler к обучающим данным, а затем используем его для преобразования как обучающих, так и тестовых данных.

Шаг 4: Обучение модели

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

from sklearn.svm import SVC
clf = SVC()
clf.fit(X_train, y_train)

clf — это наша обученная модель машинного обучения.

Шаг 5: Оценка модели

Теперь мы можем использовать нашу обученную модель для прогнозирования тестовых данных:

y_pred = clf.predict(X_test)

Мы можем оценить производительность нашей модели, вычислив ее точность:

from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

Функция accuracy_score() сравнивает предсказанные метки (y_pred) с истинными метками (y_test) и вычисляет точность.

Заключение

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

Это было создано ChatGPT, чтобы узнать, как это было сделано, прочитайте мою статью об учебных пособиях ChatGPT

Свяжитесь со мной в LinkedIn:https://www.linkedin.com/in/umaraftab/

Если вам понравилась эта статья, подпишитесь на меня и поддержите меня.

https://www.buymeacoffee.com/umaraftab