Skip to main content

🤖 Машинное обучение для IoT данных

📋 Паспорт спринта

Параметр Значение
Предмет Интернет вещей (элективный курс)
Класс 9 класс
Спринт № 17 из 36 (предфинальный модуль 3: Обработка и анализ данных)
Тип занятия AI Workshop + практическое моделирование
Продолжительность 90 минут
Формат Hands-on ML лаборатория + интеграция в проект метеостанции

🎯 Цели спринта (Sprint Goals)

Основная цель:

Освоить основы машинного обучения для создания “умных” IoT систем, способных к прогнозированию и автоматическому принятию решений

Конкретные результаты спринта:

  • Понимание принципов работы ML в контексте IoT
  • Создана модель прогнозирования погоды на основе данных датчиков
  • Реализована система автоматических решений для “умной” метеостанции
  • Освоены базовые алгоритмы: линейная регрессия, классификация, кластеризация
  • НОВОЕ: Интеграция ML моделей в код Raspberry Pi
  • Подготовлена AI-компонента для финального проекта метеостанции

🕐 Sprint Timeline (90 минут)

⚡ SPRINT START (0-5 мин): AI Revolution Challenge

Задача: Показать магию и практичность машинного обучения

Демо “Умной метеостанции”:

  • Показать работающую систему: “Завтра будет дождь” (на основе данных датчиков)
  • “Система автоматически включила полив, потому что предсказала засуху”
  • “Как научить машину думать как метеоролог?”

Проблемный вопрос:

1Данные датчиков: температура падает, влажность растет, давление снижается
2Человек: "Будет дождь!"
3Машина: "Не понимаю связи..."
4
5Как объяснить машине то, что понимает человек?

Результат: Мотивация к изучению ML как способа “научить машину думать”

📚 THEORY BLOCK (5-25 мин): ML для IoT - основы

Микро-блок 1 (7 мин): Что такое машинное обучение?

Простое определение:

  • ML = способ найти закономерности в данных автоматически
  • Вместо программирования правил → машина сама их находит
  • Особенно полезно когда правила сложные или неизвестные

IoT + ML = мощная комбинация:

  • IoT собирает данные → ML находит паттерны → IoT принимает решения
  • Примеры: умный термостат, предиктивное обслуживание, оптимизация энергии

Аналогия с обучением человека:

1Ребенок учится распознавать дождь:
21. Наблюдает много ситуаций (данные)
32. Замечает закономерности (алгоритм)
43. Предсказывает погоду (модель)
54. Проверяет правильность (валидация)

Микро-блок 2 (6 мин): Типы ML для IoT

Supervised Learning (Обучение с учителем):

  • Есть правильные ответы для обучения
  • Примеры: прогноз температуры, классификация “дождь/солнце”
  • Алгоритмы: линейная регрессия, решающие деревья

Unsupervised Learning (Обучение без учителя):

  • Ищем скрытые паттерны без правильных ответов
  • Примеры: группировка похожих дней, поиск аномалий
  • Алгоритмы: кластеризация, поиск выбросов

🆕 Reinforcement Learning (Обучение с подкреплением):

  • Система учится через пробы и ошибки
  • Примеры: оптимизация полива, управление отоплением
  • “Если включить полив → растения довольны → получаем награду”

Микро-блок 3 (6 мин): ML pipeline для IoT

Стандартный процесс:

 1# 1. Сбор данных (уже умеем - датчики!)
 2data = collect_sensor_data()
 3
 4# 2. Подготовка данных
 5clean_data = preprocess(data)
 6features, labels = prepare_features(clean_data)
 7
 8# 3. Обучение модели
 9model = train_model(features, labels)
10
11# 4. Проверка качества
12accuracy = evaluate_model(model, test_data)
13
14# 5. Использование в IoT
15prediction = model.predict(new_sensor_data)
16make_decision(prediction)

Особенности IoT данных:

  • Временные ряды (данные идут постоянно)
  • Много шума (датчики не идеальны)
  • Реальное время (нужен быстрый ответ)
  • Ограниченные ресурсы (Raspberry Pi не суперкомпьютер)

🆕 Микро-блок 4 (6 мин): Простые алгоритмы на пальцах

Линейная регрессия:

  • “Провести лучшую линию через точки”
  • Если температура растет, то влажность падает (линейная связь)
  • Хорошо для трендов и простых зависимостей

K-means кластеризация:

  • “Разделить данные на группы похожих”
  • Например: “солнечные дни”, “дождливые дни”, “переходные дни”
  • Хорошо для понимания типов погоды

Решающее дерево:

  • “Система вопросов да/нет”
  • Если температура > 25°C И влажность < 60% → включить полив
  • Легко понять и объяснить

☕ BREAK (25-30 мин): Техническая пауза

🛠️ ПРАКТИЧЕСКИЙ БЛОК (30-75 мин): ML Laboratory

Этап 1: Настройка ML среды (30-35 мин)

Подготовка инструментов:

  • Jupyter Notebook + библиотеки: scikit-learn, pandas, matplotlib
  • Загрузка расширенного датасета метеостанции (21 день данных)
  • 🆕 Простые готовые функции-обертки для сложных ML операций

🆕 ML Helper Functions:

 1# Упрощенные функции для 9 класса
 2def easy_linear_regression(X, y):
 3    """Простая линейная регрессия с автоматической оценкой"""
 4    # Скрывает сложности sklearn
 5    pass
 6
 7def easy_clustering(data, n_clusters=3):
 8    """Кластеризация с автоматической визуализацией"""
 9    # Автоматически строит графики
10    pass
11
12def easy_prediction(model, new_data):
13    """Прогноз с понятным выводом"""
14    # Возвращает результат + объяснение
15    pass

Этап 2: Прогнозирование погоды (35-50 мин)

🆕 ЛАБОРАТОРНАЯ РАБОТА “WEATHER PREDICTOR”:

Задание 1: Простой прогноз температуры (8 мин)

 1# TODO: Использовать вчерашние данные для прогноза сегодняшних
 2import pandas as pd
 3from sklearn.linear_model import LinearRegression
 4
 5# Подготовка данных
 6df = pd.read_csv('weather_21days.csv')
 7df['temp_yesterday'] = df['temperature'].shift(1)
 8df = df.dropna()
 9
10# Простая модель: завтрашняя температура = f(сегодняшней)
11X = df[['temp_yesterday']].values
12y = df['temperature'].values
13
14# TODO: Разделить на обучение и тест
15train_size = int(0.8 * len(X))
16X_train, X_test = X[:train_size], X[train_size:]
17y_train, y_test = y[:train_size], y[train_size:]
18
19# TODO: Обучить модель
20model = LinearRegression()
21model.fit(X_train, y_train)
22
23# TODO: Проверить точность
24predictions = model.predict(X_test)
25accuracy = calculate_accuracy(y_test, predictions)
26print(f"Точность прогноза: {accuracy:.2f}%")
27
28# Вопрос: Можете ли вы улучшить прогноз, добавив влажность?

Задание 2: Многофакторный прогноз (7 мин)

 1# TODO: Прогноз дождя на основе нескольких параметров
 2# Создаем метку "дождь" (высокая влажность + низкое давление)
 3df['will_rain'] = ((df['humidity'] > 80) & 
 4                   (df['pressure'] < df['pressure'].mean())).astype(int)
 5
 6# Используем несколько признаков
 7features = ['temperature', 'humidity', 'pressure', 'wind_speed']
 8X = df[features].values
 9y = df['will_rain'].values
10
11# TODO: Обучить классификатор
12from sklearn.tree import DecisionTreeClassifier
13rain_model = DecisionTreeClassifier(max_depth=3)  # Простое дерево
14rain_model.fit(X_train, y_train)
15
16# TODO: Проверить на тестовых данных
17rain_predictions = rain_model.predict(X_test)
18print(f"Точность прогноза дождя: {accuracy_score(y_test, rain_predictions):.2f}")
19
20# Бонус: Визуализировать дерево решений

Этап 3: Умные решения для IoT (50-65 мин)

🆕 ЛАБОРАТОРНАЯ РАБОТА “SMART DECISIONS”:

Задание 3: Автоматический полив (8 мин)

 1# TODO: Система автоматического принятия решений
 2def smart_irrigation_system(current_weather, soil_moisture, weather_forecast):
 3    """
 4    Умная система полива на основе ML
 5    """
 6    # Прогноз дождя на завтра
 7    rain_probability = rain_model.predict_proba([current_weather])[0][1]
 8    
 9    # Логика принятия решения
10    if soil_moisture < 30:  # Сухая почва
11        if rain_probability < 0.3:  # Дождя не ожидается
12            return "ВКЛЮЧИТЬ ПОЛИВ", f"Почва сухая ({soil_moisture}%), дождь маловероятен ({rain_probability:.1%})"
13        else:
14            return "ЖДАТЬ", f"Ожидается дождь ({rain_probability:.1%})"
15    else:
16        return "НЕ ПОЛИВАТЬ", f"Почва влажная ({soil_moisture}%)"
17
18# TODO: Протестировать систему на разных сценариях
19test_scenarios = [
20    ([25, 45, 1013, 5], 25, "завтра дождь"),  # жарко, сухо, но дождь ожидается
21    ([30, 40, 1020, 2], 20, "ясно"),          # жарко, сухая почва, ясно
22    ([20, 70, 1005, 8], 60, "облачно")        # прохладно, влажная почва
23]
24
25for weather, soil, description in test_scenarios:
26    decision, reason = smart_irrigation_system(weather, soil, description)
27    print(f"Сценарий: {description}")
28    print(f"Решение: {decision}")
29    print(f"Причина: {reason}\n")

Задание 4: Поиск аномалий (7 мин)

 1# TODO: Обнаружение неисправностей датчиков
 2from sklearn.cluster import KMeans
 3from sklearn.preprocessing import StandardScaler
 4
 5# Нормализация данных (важно для кластеризации)
 6scaler = StandardScaler()
 7normalized_data = scaler.fit_transform(df[['temperature', 'humidity', 'pressure']])
 8
 9# Кластеризация на "нормальные" и "аномальные" дни
10kmeans = KMeans(n_clusters=2, random_state=42)
11clusters = kmeans.fit_predict(normalized_data)
12
13# TODO: Найти аномальные точки
14df['cluster'] = clusters
15anomaly_cluster = df.groupby('cluster').size().idxmin()  # Меньший кластер = аномалии
16anomalies = df[df['cluster'] == anomaly_cluster]
17
18print(f"Обнаружено {len(anomalies)} аномальных измерений:")
19print(anomalies[['timestamp', 'temperature', 'humidity', 'pressure']])
20
21# TODO: Визуализировать аномалии на графике
22plt.figure(figsize=(12, 4))
23plt.scatter(df.index, df['temperature'], c=df['cluster'], cmap='viridis')
24plt.title('Обнаружение аномалий в температурных данных')
25plt.ylabel('Температура (°C)')
26plt.show()

Этап 4: Интеграция с IoT системой (65-75 мин)

🆕 КОМАНДНАЯ РАБОТА “ML FOR WEATHER STATION”:

Задача: Каждая команда добавляет ML в свой проект метеостанции

Команда “Агро-метеостанция”:

 1# TODO: ML для сельского хозяйства
 2class AgroML:
 3    def __init__(self):
 4        self.irrigation_model = self.train_irrigation_model()
 5        self.crop_growth_model = self.train_growth_model()
 6    
 7    def should_irrigate(self, weather_data, soil_moisture):
 8        # Комплексное решение на основе ML
 9        pass
10    
11    def predict_harvest_time(self, growth_data):
12        # Прогноз созревания культур
13        pass
14    
15    def optimize_fertilizer(self, soil_data, weather_forecast):
16        # Оптимизация подкормки
17        pass
18
19# TODO: Реализовать одну из функций

Команда “Эко-монитор”:

 1# TODO: ML для экологического мониторинга
 2class EcoML:
 3    def __init__(self):
 4        self.air_quality_model = self.train_pollution_model()
 5        self.noise_classifier = self.train_noise_classifier()
 6    
 7    def predict_air_quality(self, weather_data):
 8        # Прогноз загрязнения воздуха
 9        pass
10    
11    def classify_noise_source(self, sound_data):
12        # Определение источника шума
13        pass
14    
15    def environmental_alert(self, all_sensors):
16        # Комплексная оценка экологической ситуации
17        pass
18
19# TODO: Реализовать экологические алгоритмы

Команда “Умная станция”:

 1# TODO: ML для общего управления
 2class SmartStationML:
 3    def __init__(self):
 4        self.weather_predictor = self.train_weather_model()
 5        self.energy_optimizer = self.train_energy_model()
 6    
 7    def adaptive_sampling(self, current_conditions):
 8        # Адаптивная частота измерений
 9        pass
10    
11    def predict_system_load(self, forecast_data):
12        # Прогноз нагрузки на систему
13        pass
14    
15    def optimize_power_consumption(self, battery_level, weather_forecast):
16        # Оптимизация энергопотребления
17        pass
18
19# TODO: Создать интеллектуальную систему управления

🎯 ML SHOWCASE (75-85 мин): Демонстрация моделей

Этап 1: Презентация результатов (75-82 мин)

Формат: 2 минуты на команду + общий разбор

🆕 Структура презентации ML модели:

  1. Проблема: Что решает ваша модель? (30 сек)
  2. Данные: Какие признаки используете? (30 сек)
  3. Алгоритм: Какой метод ML применили? (30 сек)
  4. Результат: Насколько точна модель? (30 сек)

Критерии оценки:

  • ✅ Понимание принципа работы ML
  • ✅ Практическая ценность для IoT
  • ✅ Качество реализации
  • НОВОЕ: Объяснение решений модели

Этап 2: Интеграционный разбор (82-85 мин)

Вопросы для обсуждения:

  1. Точность vs Скорость: “Какая модель работает быстрее на Pi?” (1 мин)
  2. Объяснимость: “Можете ли объяснить, почему модель приняла такое решение?” (1 мин)
  3. Применимость: “Где еще можно использовать такие модели?” (1 мин)

🔄 SPRINT RETRO (85-90 мин): ML Reflection

Техника “ML Journey”:

  • До: Что думали о ML до занятия?
  • Во время: Что было самым удивительным?
  • После: Как изменилось понимание возможностей IoT?

🆕 Анонс спринта #18: “Финальная сборка метеостанции с AI”


📝 Sprint Backlog (Домашнее задание)

User Story:

Как IoT-разработчик с навыками ML, я хочу интегрировать интеллектуальные возможности в свою метеостанцию, чтобы создать по-настоящему “умную” систему.

🆕 ПОДГОТОВКА К ФИНАЛЬНОМУ ПРОЕКТУ:

Общее задание для всех команд (обязательное):

Задание 1: Улучшение личной ML модели

1# Возьмите одну из моделей со спринта и улучшите её:
2
31. Добавьте больше признаков для обучения
42. Попробуйте другой алгоритм (из sklearn)
53. Оптимизируйте параметры модели
64. Создайте более информативную визуализацию результатов
7
8# Цель: Точность > 80% для вашей задачи
9# Результат: Jupyter notebook с улучшенной моделью

Задание 2: ML Ethics и ограничения

1Изучите и ответьте на вопросы:
2
31. Может ли ML модель ошибаться? Приведите примеры последствий
42. Что такое "bias" в данных? Как это влияет на IoT системы?
53. Нужно ли объяснять решения ML системы пользователю?
64. Как обеспечить приватность данных в умных домах?
7
8# Результат: Эссе на 1 страницу о этических аспектах ML в IoT

Специализированные задания по командам:

Для команды “Агро-метеостанция”:

1# Задание: Создать "цифрового агронома"
2
31. Исследовать связь между погодными условиями и ростом растений
42. Создать модель оптимального времени посадки
53. Разработать систему раннего предупреждения о болезнях растений
64. Интегрировать все модели в единую "Агро-AI" систему
7
8# Дополнительно: изучить precision agriculture и IoT farming

Для команды “Эко-монитор”:

1# Задание: Создать "экологический ИИ"
2
31. Модель прогнозирования качества воздуха на день вперед
42. Система классификации экологических угроз
53. Алгоритм оптимизации маршрутов с учетом экологии
64. Интеграция в единую систему экомониторинга
7
8# Дополнительно: изучить smart city технологии и environmental AI

Для команды “Умная станция”:

1# Задание: Создать "метео-ИИ"
2
31. Ансамбль моделей для повышения точности прогнозов
42. Система адаптивного управления частотой измерений
53. Предиктивное обслуживание оборудования станции
64. Создание API для интеграции с другими умными системами
7
8# Дополнительно: изучить edge computing и distributed AI

🆕 Техническая подготовка к финалу:

1# Все команды должны подготовить:
2
31. requirements.txt с необходимыми библиотеками
42. config.py с настройками ML моделей
53. ml_models.py с обученными моделями
64. utils.py с вспомогательными функциями
75. README.md с описанием AI функциональности
8
9# Структура проекта должна быть готова к интеграции в спринте 18

Definition of Done:

  • Улучшена персональная ML модель (точность >80%)
  • Написано эссе о ML этике в IoT
  • Выполнены специализированные задания команды
  • Подготовлена техническая база для финального проекта
  • (Опционально) Изучены дополнительные материалы по AI в IoT

📊 Sprint Metrics (Оценивание)

🆕 ML Competency Assessment:

Критерий Отлично (5) Хорошо (4) Удовлетворительно (3)
ML Understanding Понимает принципы, может объяснить алгоритмы Знает основы, применяет готовые решения Использует ML как “черный ящик”
Code Implementation Самостоятельно модифицирует и улучшает код Адаптирует готовые примеры Копирует код с минимальными изменениями
IoT Integration Видит практические применения ML в IoT Понимает связь ML и IoT систем Рассматривает ML отдельно от IoT
Problem Solving Самостоятельно выбирает подходящие алгоритмы Решает задачи с подсказками Нуждается в пошаговом руководстве
🆕 Ethical Awareness Понимает ограничения и риски ML Знает о существовании этических вопросов Фокусируется только на технических аспектах

🆕 Практические навыки ML:

  • Data Preprocessing: Умение подготовить IoT данные для ML
  • Model Training: Способность обучить и оценить модель
  • Hyperparameter Tuning: Навыки улучшения производительности
  • Visualization: Умение визуализировать результаты ML
  • Integration: Способность встроить ML в IoT систему

🆕 Sprint Badges для ML Engineers:

  • 🤖 AI Pioneer - за первые успешные ML модели
  • 🎯 Accuracy Master - за высокую точность прогнозов
  • 🔮 Future Predictor - за качественные временные прогнозы
  • 🛠️ Integration Expert - за успешную интеграцию ML в IoT
  • 🧠 Ethical Thinker - за понимание ответственности AI

🎒 Sprint Resources

ML Software Stack:

  • Python 3 + Jupyter Notebook
  • scikit-learn (упрощенные алгоритмы ML)
  • pandas, numpy, matplotlib (уже знакомы)
  • 🆕 Simplified ML wrappers - собственные функции для 9 класса
  • Seaborn для красивой визуализации

🆕 Подготовленные датасеты:

1weather_21days.csv - расширенный датасет для ML
2synthetic_predictions.csv - данные с известными паттернами
3sensor_anomalies.csv - данные с аномалиями для обучения
4real_farm_data.csv - реальные агро-данные (анонимизированные)

🆕 ML Educational Materials:

  • Визуальные схемы алгоритмов ML
  • Карточки с применениями ML в разных отраслях
  • Примеры “хороших” и “плохих” ML моделей
  • Чек-лист этических вопросов AI

Технические средства:

  • Компьютеры с достаточной производительностью для ML
  • Резервные USB с предустановленной ML средой
  • 🆕 Raspberry Pi для демонстрации edge ML (если возможно)
  • Проектор для совместного debugging кода

🆕 Безопасность и этика:

  • Инструкции по ответственному использованию AI
  • Примеры негативных последствий неправильного ML
  • Гайдлайны по приватности данных
  • Правила тестирования ML систем

Резервный план:

Если ML слишком сложен:

  • Фокус на готовых моделях и их применении
  • Больше времени на понимание принципов, меньше на кодирование
  • 🆕 Использование no-code ML платформ (Teachable Machine, Scratch for ML)

Если технические проблемы:

  • Демонстрация ML через готовые примеры
  • Работа с псевдокодом вместо реального кода
  • Фокус на планировании применения ML в проекте

🔧 Sprint Facilitation Tips

🆕 Управление сложностью ML:

  • Gradual complexity: От простых к сложным алгоритмам
  • Visual first: Начинать с графиков, потом код
  • Practical focus: Каждый алгоритм = конкретное применение в IoT
  • Error normalization: “Ошибки в ML - это нормально, учимся на них”

🆕 Отладка ML кода:

  • Common errors database: Готовые решения типичных проблем
  • Pair debugging: Более сильные помогают слабым
  • Checkpoint validation: Промежуточная проверка результатов
  • Fallback options: Упрощенные версии заданий

🆕 Мотивация и engagement:

  • Real-world demos: “Так работает рекомендательная система Netflix”
  • Gamification: “Чья модель точнее предскажет завтрашнюю погоду?”
  • Career connections: “ML Engineer - одна из самых востребованных профессий”
  • Success celebration: Отмечать каждую успешно обученную модель

Типичные проблемы и решения:

Проблема: “ML модель дает плохие результаты” Решение: Проверить качество данных, простоту модели, размер обучающей выборки

Проблема: “Не понимаю, как работает алгоритм” Решение: Визуализация процесса, аналогии с жизнью, упрощенные примеры

Проблема: “Код не запускается” Решение: Подготовленные рабочие шаблоны, пошаговая отладка

🆕 Проблема: “Зачем это нужно в реальной жизни?” 🆕 Решение: Конкретные примеры применения, видео реальных ML систем


🔗 Связь с программой курса

🆕 Кульминация аналитического модуля:

  • Спринт 16: pandas/matplotlib → Спринт 17: ML → полный data science pipeline
  • Техническое развитие: От анализа к прогнозированию
  • Проектная готовность: Все навыки для создания умной метеостанции

🆕 Подготовка к финальному проекту:

  • Спринт 18: Интеграция всех компонентов + AI
  • Технические навыки: Датчики + Анализ + ML = Полноценная IoT система
  • Презентационные навыки: Демонстрация сложной системы

🆕 Профориентационная ценность:

1Data Scientist: Анализ данных + ML модели
2ML Engineer: Внедрение AI в продукты  
3IoT Developer: Умные устройства с AI
4Research Engineer: Исследования в области IoT + AI

🆕 Долгосрочные навыки:

  • Computational Thinking: Решение задач через алгоритмы
  • Data Literacy: Понимание данных и их ограничений
  • AI Ethics: Ответственное отношение к технологиям
  • System Integration: Объединение разных технологий

📈 Sprint Success Metrics

Спринт считается успешным, если:

  • ✅ 80%+ учащихся создали работающую ML модель для IoT данных
  • ✅ Все команды понимают, как интегрировать AI в метеостанцию
  • ✅ Сформировано понимание возможностей и ограничений ML
  • ✅ Готовность к финальному проекту с AI компонентами
  • 🆕 Понимание этических аспектов AI в IoT
  • 🆕 Видение карьерных перспектив в области AI + IoT

🆕 Технические достижения:

  • Количество успешно обученных моделей
  • Средняя точность прогнозов (цель: >70%)
  • Процент учащихся, способных объяснить работу алгоритма
  • 🆕 Качество интеграции ML в IoT концепцию проекта

🆕 Качественные показатели:

  • Энтузиазм по поводу AI возможностей
  • Понимание практической ценности ML для IoT
  • Критическое мышление о применении AI
  • 🆕 Сформированное представление о будущем IoT + AI

🆕 Подготовка к карьере:

  • Базовое понимание профессии Data Scientist
  • Знание инструментов современной разработки AI
  • Понимание междисциплинарности IoT + AI
  • 🆕 Мотивация к дальнейшему изучению технологий

🚀 ТРАНСФОРМАЦИОННОЕ ЗНАЧЕНИЕ СПРИНТА 17:

  1. Введение в AI - от простых программ к интеллектуальным системам
  2. Практический ML - реальные модели на реальных IoT данных
  3. Системная интеграция - ML как часть IoT экосистемы
  4. Этическое мышление - ответственность за AI решения
  5. Профессиональная ориентация - понимание карьер будущего
  6. Критическое мышление - понимание возможностей и ограничений AI
  7. Подготовка к финалу - все навыки для создания умной системы

Этот спринт превращает учащихся из “пользователей IoT” в “создателей умных систем” и открывает им мир возможностей на пересечении IoT и искусственного интеллекта! 🤖🌐💡