gusev_vladislav_lab_3 is ready
This commit is contained in:
parent
caab9f2f8b
commit
c0217ad0d3
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