Организмы оз. Байкал (v.1.1.1)

Инференс и тайны байкальской фауны

Задача: “Рассчитать среднюю температуру воды и стандартное отклонение для разных глубин озера” - не требует ни анализа закономерностей, ни предсказаний — только вычисления. Поэтому она чисто математическая, и инференс или анализ данных не нужны.

Задача: “Построить статистику вылова рыбы за прошлый год” - Требует агрегации/визуализации исторических отчётов (среднее, суммы, графики по месяцам и районам) - это анализ данных.

Задача: “Предсказать численность голомянки при необычно тёплом лете и снижении кислорода” - требует работы нейросети, это инференс.


Фактчекинг информации об ИИ

  1. Нейронные сети состоят из слоёв узлов (нейронов), которые соединяются с помощью весов и активационных функций.

✅ Верно. Узлы объединяются в слои, веса и активации помогают модели выявлять сложные зависимости.

  1. Специальный искусственный интеллект способен решать любые задачи на уровне человека.

❌ Неверно. Узкоспециализированный ИИ решает только конкретные задачи, не обладает универсальным интеллектом.

  1. Общий искусственный интеллект — это система будущего, которая сможет эффективно решать любые задачи так же, как человек.

✅ Верно. AGI — гипотетическая система с универсальными когнитивными способностями.

  1. Символьный искусственный интеллект опирается на базы правил и логику, а не на нейросети.

✅ Верно. Символьный ИИ использует знания и формальные правила, а не обучение на данных.

  1. Машинное обучение — это подход к созданию ИИ, когда система учится на данных без явного программирования правил.

✅ Верно. Модели выявляют закономерности в данных и делают предсказания без ручного программирования правил.

  1. Кластеризация — это метод классификации, который использует размеченные данные для обучения.

❌ Неверно. Кластеризация — это обучение без учителя, работает с неразмеченными данными для выявления групп.

  1. Нейронные сети не могут использоваться для задач классификации и регрессии — только для распознавания изображений.

❌ Неверно. Нейросети применяются для классификации, регрессии, генерации текста, обработки звука и др.

  1. Глубокие нейронные сети всегда работают быстрее, чем простые нейросети с одним слоем.

❌ Неверно. Глубокие сети обычно медленнее из-за большего числа слоёв и параметров.


Проверка гипотез

Голомянка - самый мелководный организм
❌ Неверно. Голомянка обитает на самой большой глубине

Инородный_объект - самый мелководный организм
✅ Верно. Инородный объект обитает в воде ближе всех остальных организмов к поверхности

Инородный_объект - самый нетребовательный к кислороду организм
✅ Верно. Инородный объект не требует кислорода, по сравнению с другими организмами

Голомянка - несветящийся организм
❌ Неверно. Голомянка единственный светящийся организм в данных

Байкальская_губка - самый глубоководный организм
❌ Неверно. Голомянка обитает значительно глубже

Код сбора данных

Собрано 1200 записей о байкальских организмах

1200*0.8 = 960 - записей в тренировочной выборке

240 записей в тестовой выборке

import pandas as pd

def parse_data(url, organism):
    print(f'Сбор данных {organism}')
    df_list = []

    page = 1
    while True:
        print(f'Обработка страницы {page}')
        try:
            data = pd.read_html(url.format(organism=organism, page=page), encoding='utf8')[0]
            df_list.append(data)
            page += 1
        except:
            break

    print(f'Данные {organism} собраны')
    data = pd.concat(df_list)
    return data

data_list = []
for o in ['epishura', 'golomyanka', 'amfipoda', 'baykalskaya_gubka', 'inorodny_obekt']:
    data = parse_data('https://yupest2.pythonanywhere.com/baikal_organisms/?organism={organism}&page={page}', o)
    data_list.append(data)

all_data = pd.concat(data_list).sort_values('id')
all_data.to_csv('baikal_organisms.csv', index=False)

Код балансировки данных

# Чтение входных данных
classes = list(map(int, input().split()))

# Находим максимальный класс
max_size = max(classes)

# Вычисляем сколько нужно добавить к каждому классу
result = [max_size - count for count in classes]

# Вывод результата
print(' '.join(map(str, result)))

Проект нейросети

Изображение

Сделано командой Альтернативного будущего