Merge pull request 'gusev_vladislav_lab_3' (#62) from gusev_vladislav_lab_3 into main
Reviewed-on: http://student.git.athene.tech/Alexey/IIS_2023_1/pulls/62
This commit is contained in:
commit
d575910860
27
gusev_vladislav_lab_3/README.md
Normal file
27
gusev_vladislav_lab_3/README.md
Normal file
@ -0,0 +1,27 @@
|
||||
### Вариант 9
|
||||
### Задание на лабораторную работу:
|
||||
Решите с помощью библиотечной реализации дерева решений задачу: Запрограммировать дерево решений как минимум на 99% ваших данных для задачи: Зависимость глубины алмаза (depth) от длины (x), ширины (y) и высоты алмаза (z) . Проверить работу модели на оставшемся проценте, сделать вывод.
|
||||
|
||||
### Как запустить лабораторную работу:
|
||||
Выполняем файл gusev_vladislav_lab_3.py, решение будет в консоли.
|
||||
|
||||
### Технологии
|
||||
Sklearn - библиотека с большим количеством алгоритмов машинного обучения. Нам понадобится библиотека для дерева решения регрессии sklearn.tree.DecisionTreeRegressor.
|
||||
|
||||
### По коду
|
||||
1) Для начала загружаем данные из csv файла
|
||||
2) Разделеям данные на признаки (X) и целевую переменную (y)
|
||||
3) Разделяем данные на обучающее и тестовые
|
||||
4) Обучаем дерево регрессией (model)
|
||||
5) Выводим важность признаков, предсказание значений на тестовой выборке и оценку производительности модели
|
||||
|
||||
Пример:
|
||||
|
||||
![img.png](img.png)
|
||||
|
||||
### Вывод
|
||||
- score: ~0.88. Это мера того, насколько хорошо модель соответствует данным. По значению 88% можно сказать, что модель хорошо соответствует данным.
|
||||
- feature_importances: ~0.26, ~0.34, ~0,39. Это говорит о важности признаков для нашей модели. Можно сказать, что высота (z) имеет наибольшую важность.
|
||||
- Mean Squared Error: 0.22. Это ошибка модели. Это говорит о том, что модель в среднем ошибается в 22% случаев.
|
||||
|
||||
По итогу можно сказать, что модель отработала хорошо, из-за score ~0.88.
|
53944
gusev_vladislav_lab_3/diamonds_prices.csv
Normal file
53944
gusev_vladislav_lab_3/diamonds_prices.csv
Normal file
File diff suppressed because it is too large
Load Diff
31
gusev_vladislav_lab_3/gusev_vladislav_lab_3.py
Normal file
31
gusev_vladislav_lab_3/gusev_vladislav_lab_3.py
Normal file
@ -0,0 +1,31 @@
|
||||
import pandas as pd
|
||||
from sklearn.model_selection import train_test_split
|
||||
from sklearn.tree import DecisionTreeRegressor
|
||||
from sklearn.metrics import mean_squared_error
|
||||
|
||||
# Загрузка данных из csv-файла
|
||||
data = pd.read_csv('diamonds_prices.csv', index_col='diamond_id')
|
||||
|
||||
# Разделение данных на признаки (X) и целевую переменную (y)
|
||||
X = data[['x', 'y', 'z']]
|
||||
|
||||
print (X.head())
|
||||
y = data['depth']
|
||||
|
||||
# Разделение данных на обучающую и тестовую выборки
|
||||
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.01, random_state=42)
|
||||
|
||||
#Решение с помощью дерева регрессии
|
||||
model = DecisionTreeRegressor()
|
||||
model.fit(X_train, y_train)
|
||||
test_score = model.score(X_test, y_test)
|
||||
# Получение важности признаков
|
||||
feature_importances = model.feature_importances_
|
||||
# Предсказание значений на тестовой выборке
|
||||
y_pred = model.predict(X_test)
|
||||
# Оценка производительности модели
|
||||
mse = mean_squared_error(y_test, y_pred)
|
||||
|
||||
print("score", test_score)
|
||||
print("feature_importances", feature_importances)
|
||||
print("Mean Squared Error: {:.2f}".format(mse))
|
BIN
gusev_vladislav_lab_3/img.png
Normal file
BIN
gusev_vladislav_lab_3/img.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.9 KiB |
Loading…
Reference in New Issue
Block a user