Python является одним из самых популярных языков программирования в области машинного обучения. Он предоставляет мощные библиотеки и фреймворки, которые облегчают работу с данными, построение моделей и оценку их эффективности. В этой статье мы рассмотрим две популярные библиотеки, scikit-learn и TensorFlow, и покажем, как использовать их для создания и обучения моделей машинного обучения.
Scikit-learn — это библиотека машинного обучения, которая предоставляет множество алгоритмов и инструментов для анализа данных, классификации, регрессии, кластеризации и прогнозирования. Она построена на основе библиотек NumPy и SciPy, что делает ее очень эффективной и удобной в использовании.
Прежде чем начать использовать scikit-learn, необходимо установить его с помощью следующей команды:
pip install -U scikit-learn
После установки мы можем импортировать необходимые модули и начать работать с данными. Например, давайте построим модель для предсказания цены на дом на основе его характеристик. Для этого мы будем использовать набор данных из scikit-learn:
from sklearn.datasets import load_boston from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split # Загружаем данные data = load_boston() X, y = data.data, data.target # Разделяем данные на обучающую и тестовую выборки X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Создаем и обучаем модель model = LinearRegression() model.fit(X_train, y_train)
Теперь мы можем использовать обученную модель для предсказания цены неизвестного дома:
# Предсказываем цену y_pred = model.predict(X_test)
TensorFlow — это библиотека открытого исходного кода, разработанная компанией Google, для построения и обучения нейронных сетей. Она предоставляет широкий набор инструментов для работы с данными, создания моделей и тренировки их с использованием графического процессора.
Установка TensorFlow может быть немного сложной из-за зависимостей, но с помощью команды в терминале это можно сделать:
pip install tensorflow
После установки мы можем создать простую нейросеть с одним скрытым слоем и обучить ее, используя набор данных MNIST для распознавания рукописных цифр:
import tensorflow as tf from tensorflow.keras.layers import Dense from tensorflow.keras.models import Sequential from tensorflow.keras.datasets import mnist # Загружаем данные (X_train, y_train), (X_test, y_test) = mnist.load_data() # Нормализуем данные X_train, X_test = X_train / 255.0, X_test / 255.0 # Создаем модель model = Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), Dense(128, activation='relu'), Dense(10, activation='softmax') ]) # Компилируем модель model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # Обучаем модель model.fit(X_train, y_train, epochs=5, validation_data=(X_test, y_test))
После обучения модели мы можем использовать ее для распознавания рукописных цифр:
# Предсказываем метки классов для тестовых данных y_pred = model.predict_classes(X_test)
В этой статье мы рассмотрели две популярные библиотеки для машинного обучения в Python — scikit-learn и TensorFlow. Обе они предоставляют мощные инструменты и алгоритмы для работы с данными и построения моделей. Начать работу с ними достаточно просто, и они хорошо документированы, что делает их отличным выбором для всех, кто интересуется машинным обучением.