Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 10.12.2019
Сообщений: 13

Решение методом случайного леса

11.04.2024, 08:55. Показов 618. Ответов 7

Студворк — интернет-сервис помощи студентам
Загрузите набор «Качество красного вина» (файл winequality-red – в дополнительных
материалах к курсу). Набор относится к красному португальскому вину «Vinho Verde». Более
подробная информация о наборе в приложении. Предскажите качество вина по входным
данным. Используйте дерево классификации. Посчитайте точность полученного дерева.
Улучшите параметры дерева любым известным вам методом. Посчитайте точность на
улучшенном дереве.
Вложения
Тип файла: xls winequality-red.xls (344.0 Кб, 5 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.04.2024, 08:55
Ответы с готовыми решениями:

Решение методом случайного леса
Помогите студенту решить задания пожалуйста, не знаю как делать, по возможности распишите пожалуйста в каждой строчке, какая строчка за что...

Где найти реализованный алгоритм распознавания изображений методом случайного леса
Реализация на С++

Визуализация случайного леса
Добрый день! Посмотрите, пожалуйста! Решаю задачу регрессии с использованием библиотеки sklearn. Есть параметры, от которых...

7
 Аватар для VistaSV30
987 / 331 / 79
Регистрация: 10.04.2012
Сообщений: 1,241
Записей в блоге: 4
11.04.2024, 23:43
Если очень коротко, без лишних преобразований и очистки данных

Кликните здесь для просмотра всего текста

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import pandas as pd
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets, tree
import seaborn as sns
from matplotlib import pyplot as plt
 
 
df = pd.read_excel('winequality-red.xlsx')  # xls преобразован в xlsx
 
col = df.columns[:-1]
# Выбираем метод нормализации RobustScaler и создаем новый фрейм для дальнейшего исследования.
r_scaler = preprocessing.RobustScaler()
df_r = r_scaler.fit_transform(df[col])
 
df_r = pd.DataFrame(df_r, columns=col)
 
'''
# Корреляционая матрица для определения  избыточных признаков - принимаем, что таковых нет 
fig, ax = plt.subplots(figsize=(9, 9))
sns.heatmap(cbar=False, annot=True,
            data=df_r[col].corr()*100, cmap='coolwarm')
plt.title('Корреляционая матрица')
 
plt.show()
'''
 
# Преобразование показателя quality в бинарный формат.
mask = df.quality > df.quality.mean()
 
df['quality_B'] = 0
df.loc[mask, 'quality_B'] = 1
 
# Создание обучающих и тестовых выборок
col = df_r.columns
 
X, y = df_r[col], df['quality_B']
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42)
 
def TreeRegres(X, y, col, depth=None):
    model_part = DecisionTreeRegressor(max_depth=depth)
    model_part.fit(X, y)
    cn = ['Больше', 'Меньше']
    if depth < 5 and depth != None:
        # При больших значения дерево строится очень долго
        fig = plt.figure(figsize=(25, 20))
        _ = tree.plot_tree(model_part, feature_names=col,
                           filled=True, class_names=cn)
    return model_part.score(X, y)
 
 
def TreeClass(col, depth=None):
    clf = DecisionTreeClassifier(max_depth=depth, random_state=0)
    clf.fit(X_train, y_train)
    if depth < 5 and depth != None:
    # При больших значения дерево строится очень долго и становится нечитаемым
        fn = col
        cn = ['Bad', 'Good']
        fig, axes = plt.subplots(nrows=1, ncols=1, figsize=(4, 4), dpi=300)
        tree.plot_tree(clf,
                       feature_names=fn,
                       class_names=cn,
                       filled=True)
    return clf.score(X_test, y_test)
 
col = X_train.columns
 
# Построение дерева
t1 = TreeClass(col, 2) 
 
'''
Интерпритация "Дерева решений"
 
В алгоритме построения дерева решений C4.5, лежит принцип жадной максимизации прироста информации – на каждом шаге 
выбирается тот признак, при разделении по которому прирост информации оказывается наибольшим. Дальше процедура 
повторяется рекурсивно, пока энтропия не окажется равной нулю или какой-то малой величине.
 
В начале было samples = 1279 объектов (вся обучающая выборка). Энтропия начального состояния была 
максимальной – gini=0.498. (Неопределенность Джини Gini impurity). Затем было сделано разбиение объектов 
на 2 группы в зависимости от сравнения признака alcohol = [603, 6076]. При этом энтропия и в левой, и в правой 
группе объектов уменьшилась. И так далее, дерево строится до указанной глубины. При такой визуализации 
чем больше объектов одного класса, тем цвет вершины ближе к темно-оранжевому и, наоборот, чем больше 
объектов второго класса, тем ближе цвет к синему.
 
Class - указывает на то, какое значение будет иметь целевой показатель quality (качество).
 
В принципе дерево решений можно построить до такой глубины, чтоб в каждом листе был ровно один объект. 
Но на практике это не делается из-за того, что такое дерево будет переобученным – оно слишком настроится 
на обучающую выборку и будет плохо работать на прогноз на новых данных.
 
Неопределенность Джини (Gini impurity)
 
 
где pk - вероятность нахождения системы в k-ом состоянии.
'''


2
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
12.04.2024, 07:21
VistaSV30, случайный лес - это RandomForest, а не DecisionTree
0
 Аватар для VistaSV30
987 / 331 / 79
Регистрация: 10.04.2012
Сообщений: 1,241
Записей в блоге: 4
12.04.2024, 08:40
Ой!
Чисто "математическая" ошибка.
Думаю про A, говорю про B, подразумеваю C, а на самом деле должно быть D!
1
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
12.04.2024, 08:40
VistaSV30, это я прошу прощения, реагировал на заголовок, не вчитываясь в условие.
По нему именно DesicionTree))
0
12.04.2024, 08:44

Не по теме:

Может быть автор вопроса хотел начать с одного дерева, а потом пойти дальше к случайному лесу

0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
12.04.2024, 08:54
VistaSV30,

Не по теме:

с автором вопроса проблема глубже, чем кажется. Я могу понять бедных школяров и несчастных студиозов, постящих здесь свои задания, которым программирование до лампочки, но оно идет в нагрузку к аттестату/диплому. Да даже горе-олимпиадников я могу понять. Но в ML то никто тебя пока еще насильно не гонит. Зачем тратить свое время, если не тянешь?

1
1 / 1 / 0
Регистрация: 10.12.2019
Сообщений: 13
28.04.2024, 16:07  [ТС]
Дисциплину ИИ внесли в учебный план, это доп. предмет
абсолютно не касается моей будущей профессии
если бы я поступала связано с ИИ, я бы помогала на форуме, а не спрашивала бы помощи.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2024, 16:07
Помогаю со студенческими работами здесь

Визуализация случайного леса
Здравствуйте, уважаемые форумчане! Я недавно начал изучать MLearning и столкнулся с такой проблемой:(я ламер.) После обучения...

Отличие бэггинга от случайного леса
Всем привет! Расскажите пожалуйста о различии бэггинга и случайного леса

Поиск остовного леса методом Соллина
Доброго времени суток. Передо мной встала задача найти остовной лес минимальной стоимости методом Соллина. Интернет предложил единственный...

Решение транспортной задачи методом минимального элемента,методом потенциалов,методом северо-западного угла
Решение транспортной задачи методом минимального элемента,методом потенциалов,методом северо-западного угла Три предприятия...

Решение систем нелинейных уравнений методом половинного деления, методом секущих либо методом касательных
Всем привет, если кто может, пожалуйста, написать код для данных уравнений буду благодарен. C++, программа должна быть выполнена средствами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru