AI
July 23, 2023

Классификация апельсинов и яблок по весу и диаметру

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

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

import numpy as np

# Входные данные
X = np.array([[0.5, 0.2],     # Яблоко
              [0.3, 0.4],     # Яблоко
              [0.6, 0.9],     # Апельсин
              [0.1, 0.8]])    # Апельсин

# Целевой класс
Y = np.array([0, 0, 1, 1])  # 0 - Яблоко, 1 - Апельсин

# Функция сигмоиды
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# Инициализация весов
weights = np.random.rand(2)

# Обучение модели
epochs = 1000
learning_rate = 0.1

for epoch in range(epochs):
    # Прямое распространение
    output = sigmoid(np.dot(X, weights))
    
    # Вычисление ошибки
    error = Y - output
    
    # Обновление весов с использованием градиентного спуска
    weights += learning_rate * np.dot(X.T, error * output * (1 - output))
    
# Проверка модели на новых данных
new_data = np.array([[0.8, 0.1],     # Яблоко
                     [0.2, 0.7]])    # Апельсин

predictions = np.round(sigmoid(np.dot(new_data, weights)))
print(predictions)


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

После обучения мы можем проверить модель на новых данных (new_data) и получить предсказания.