Занятие 43

--Тренажер кода

from ultralytics import YOLO
import cv2

# Загрузите модель YOLO
model = YOLO("yolov8n.pt")

# Выполните анализ изображения 'image.jpg'
results = model("image.jpg")

# Получите boxes из результата
boxes = results[0].boxes

# Постройте изображение с найденными объектами
result_image = results[0].plot()

# Сохраните итоговое изображение в 'result.jpg'
cv2.imwrite("result.jpg", result_image)
	
	
--Викторина

1. YOLO обрабатывает всю сцену сразу за один проход
2. Чтобы каждая ячейка могла искать объекты в своей зоне
3. Чтобы точно указать положение объекта на изображении
4. YOLO проигнорирует или ошибочно определит объект
5. YOLO



Занятие 44

--Задание для самостоятельной работы 2

1. You Only Look Once
2. Управление беспилотниками, Автоматическое определение дорожных знаков, Медицинская диагностика
3. ADBC
4. bounding box
5. Обрабатывает всё изображение за один проход



Занятие 45

--Тренажер кода

import librosa
import numpy as np

# Загрузите аудиофайл 'sound.wav'
y, sr = librosa.load('sound.wav')

# Извлеките MFCC-признаки (n_mfcc=13)
mfcc = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13)

# Выведите форму матрицы MFCC
print(f"MFCC shape: {mfcc.shape}")
	
	
--Викторина

1. Автоматическое определение типа звука, записанного в файле
2. .wav
3. Частоты звука во времени в виде изображения
4. Да, например, модель YAMNet
5. Спектрограмма



Занятие 46

--Задание для самостоятельной работы 2

1. .wav
2. Визуализация частот и амплитуд во времени
3. librosa, scipy.io.wavfile, wave
4. Сырые звуковые волны (массивы), Спектрограммы
5. LSTM

--Задание для самоконтроля/самопроверки

1. You Only Look Once
2. Быстрая обработка изображений, Одновременное определение и классификация объектов
3. Мел-спектрограмма или MFCC
4. CNN, RNN
5. спектрограмма



Занятие 47

--Тренажер кода

from sklearn.feature_extraction.text import TfidfVectorizer
from transformers import pipeline

# 1. Подготовка данных
texts = [
    "собака лает на кошку",
    "кошка сидит на окне",
    "окно открыто в сад"
]

# --- Часть 1: TF-IDF ---

# Инициализация векторайзера
vectorizer = TfidfVectorizer()

# Преобразование текстов в матрицу TF-IDF
tfidf_matrix = vectorizer.fit_transform(texts)

# Вывод результатов
print("=== Анализ TF-IDF ===")
print(f"Форма матрицы: {tfidf_matrix.shape}")
print(f"Список слов (фичи): {vectorizer.get_feature_names_out()}")
print("Матрица TF-IDF:\n", tfidf_matrix.toarray())
print("\n")

# --- Часть 2: BERT (Sentiment Analysis) ---

# Создание пайплайна для анализа тональности
# По умолчанию используется модель, обученная на английском, 
# но pipeline отлично справляется с определением структуры.
sentiment_pipeline = pipeline("sentiment-analysis")

phrase = "Это действительно круто!"
result = sentiment_pipeline(phrase)

print("=== Анализ тональности (BERT) ===")
print(f"Фраза: {phrase}")
print(f"Результат: {result}")


--Викторина

1. Автоматическая работа с текстом: анализ, классификация, перевод и др.
2. Разбиение текста на части: слова или символы
3. RNN, LSTM и трансформеры
4. Да, нейросеть может определить категорию текста
5. Токенизация



Текущий контроль

1. коллаборативной
2. Кластеризация
3. Евклидово расстояние, Косинусное сходство, Корреляция Пирсона
4. узел
5. Content-based Filtering
6. A-B-C-D
7. Gaussian Mixture Model (GMM), Self-Organizing Maps (SOM)
8. холодного
9. C-A-D-B
10. Группировка пользователей по интересам, Сегментация медицинских снимков, Персонализированные рекомендации
11. Децентрализованная мультиагентная система
12. B-A-C-D
13. t-SNE, PCA, UMAP
14. DBSCAN
15. контентной



Занятие 49

--Тренажер кода

import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity

df = pd.DataFrame({
    'Анна': [5, 4, 0],
    'Борис': [3, 2, 5],
    'Вика': [1, 2, 5]
}, index=['Интерстеллар', 'Дюнкерк', 'Начало'])

# Посчитайте косинусное сходство между пользователями
similarity = cosine_similarity(df.T)

# Выведите результат в нужном формате
print("Косинусное сходство пользователей:")
print(similarity)


--Викторина

1. Коллаборативная фильтрация
2. Косинусное сходство
3. Контентная фильтрация
4. Гибридная
5. SVD



Занятие 50

--Задание для самостоятельной работы 2

1. профиль
2. Контентная фильтрация
3. Евклидово расстояние, Корреляция Пирсона, Косинусное сходство
4. B-D-C-A
5. Повышение разнообразия рекомендаций, Избежание эффекта пузыря


--Задание для самоконтроля/самопроверки

1. внимания
2. Сравнение поведения разных пользователей
3. Анализ тональности отзывов, Генерация текстов, Извлечение именованных сущностей
4. A-B-C-D
5. Косинусное сходство



Занятие 51

--Тренажер кода

import numpy as np
from sklearn.cluster import KMeans

data = np.array([
    [16, 2], [17, 3], [18, 2],
    [25, 10], [26, 11],
    [50, 20], [55, 18]
])

# Выполните кластеризацию методом KMeans с 3 кластерами
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(data)

# Для каждого кластера выведите все объекты в нужном формате
labels = kmeans.labels_

for i in range(3):
    cluster_points = data[labels == i]
    print(f"Кластер {i}: {cluster_points}")


--Викторина

1. Кластеризация может выявлять естественные группы без меток
2. Улицы прямые, движение только по вертикали и горизонтали
3. Определяет кластеры по плотности и может выявлять кластеры произвольной формы
4. Метрика определяет, что считать похожим
5. DBSCAN



Занятие 52

--Задание для самоконтроля/самопроверки

import sys
import math
from stars import __stars

__stars() # Инициализация задачи

def read_points_from_file(filename="stars.txt"):
    pts = []
    with open(filename, "r", encoding="utf-8") as f:
        for line in f:
            line = line.strip()
            if not line:
                continue

            parts = line.split()
            x_str = parts[0].replace(",", ".")
            y_str = parts[1].replace(",", ".")
            x = float(x_str)
            y = float(y_str)
            pts.append((x, y))
    return pts

def distance(p1, p2):
    return math.sqrt((p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2)

def split_clusters(points):
    points_sorted = sorted(points, key=lambda p: p[0])

    max_gap = -1
    split_index = -1

    for i in range(len(points_sorted) - 1):
        gap = points_sorted[i + 1][0] - points_sorted[i][0]
        if gap > max_gap:
            max_gap = gap
            split_index = i

    cluster1 = points_sorted[:split_index + 1]
    cluster2 = points_sorted[split_index + 1:]

    return cluster1, cluster2

def find_center(cluster):
    best_point = None
    best_sum = float("inf")

    for p in cluster:
        s = 0
        for q in cluster:
            s += distance(p, q)
        if s < best_sum:
            best_sum = s
            best_point = p

    return best_point

points = read_points_from_file("stars.txt")
cluster1, cluster2 = split_clusters(points)

center1 = find_center(cluster1)
center2 = find_center(cluster2)

px = (center1[0] + center2[0]) / 2
py = (center1[1] + center2[1]) / 2

print(int(px * 10000), int(py * 10000))



Занятие 53

--Тренажер кода

import networkx as nx
from node2vec import Node2Vec
import matplotlib.pyplot as plt

G = nx.Graph()
G.add_edges_from([
    ('A', 'B'), ('A', 'C'),
    ('B', 'D'), ('C', 'D'),
    ('D', 'E'), ('E', 'F'),
    ('F', 'G'), ('E', 'G'),
    ('G', 'H'), ('H', 'I')
])

# Получите эмбеддинги для всех узлов с помощью Node2Vec (dimensions=8)
node2vec = Node2Vec(G, dimensions=8)
model = node2vec.fit(window=10, min_count=1, batch_words=4)

# Выведите вектор узла 'D'
print(f"Вектор узла 'D': {model.wv['D']}")

# Постройте визуализацию графа
nx.draw(G, with_labels=True)
plt.show()


--Викторина

1. Представление узлов графа в виде числовых векторов
2. Чтобы нейросети могли анализировать структуру графа
3. Node2Vec, DeepWalk, GraphSAGE, GCN
4. Для нахождения похожих узлов по структуре
5. Вектор



Занятие 54

--Задание для самостоятельной работы 2

1. Представление узлов графа в виде векторов
2. Узлы и их связи
3. Классификация узлов, Поиск похожих пользователей, Предсказание связей между объектами
4. Node2Vec, DeepWalk, GraphSAGE
5. граф


--Задание для самоконтроля/самопроверки

1. Делит объекты на группы
2. K-Means, DBSCAN
3. Преобразует узлы графа в векторы признаков
4. Node2Vec, DeepWalk
5. граф



Занятие 55

--Тренажер кода

# Опишите класс реактивного агента
class ReactiveAgent:
    def act(self, environment):
        if environment == "стимул":
            return "Реакция на стимул"
        return "Нет действия"

# Опишите класс когнитивного агента
class CognitiveAgent:
    def act(self, environment):
        if environment == "сложная_ситуация":
            return "Планирование"
        return "Стандартное действие"

environments = ["стимул", "сложная_ситуация", "неизвестно"]

# Для каждой среды выведите реакцию обоих агентов
reactive_agent = ReactiveAgent()
cognitive_agent = CognitiveAgent()

for environment in environments:
    print(f"Среда: {environment}")
    print(f"Реактивный агент: {reactive_agent.act(environment)}")
    print(f"Когнитивный агент: {cognitive_agent.act(environment)}")
    print()


--Викторина

1. Система, где несколько интеллектуальных агентов взаимодействуют между собой
2. В транспорте, логистике, играх, финансах и «умных» устройствах
3. Потому что несколько агентов работают параллельно, гибко и надёжно
4. С помощью протоколов общения и передачи сообщений
5. Агент



Занятие 56

--Задание для самостоятельной работы 2

1. Система, состоящая из нескольких взаимодействующих интеллектуальных агентов
2. Управление распределёнными процессами
3. Логистика и транспорт, Умные города, Робототехника
4. Автономность, Взаимодействие, Целеустремлённость (ориентация на достижение цели)
5. автономность