Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions hw_1_KNN/code/KNN.ipynb

Large diffs are not rendered by default.

Binary file added hw_1_KNN/code/__pycache__/knn.cpython-310.pyc
Binary file not shown.
Binary file added hw_1_KNN/code/__pycache__/metrics.cpython-310.pyc
Binary file not shown.
2 changes: 1 addition & 1 deletion hw_1_KNN/code/knn.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def predict(self, X, n_loops=0):
elif n_loops == 1:
distances = self.compute_distances_one_loop(X)
else:
print('hi')
print('hi') # Hi))
distances = self.compute_distances_two_loops(X)

if len(np.unique(self.train_y)) == 2:
Expand Down
65 changes: 65 additions & 0 deletions hw_1_KNN/feedback.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
Отдельный респект за `requirements.txt`! На будущее, указывай туда еще и версии - потому что при если у тебя есть что-то, что в новой версии переделали, то код все равно может упасть.

# 1. EDA
## 1.1
Вопросов нет, все отлично!

## 1.2
Супер! Вопросов нет. Но удобнее было бы реализовать через гистограмму, так понятнее масштаб различий

## 1.3
Вопросов нет, сплит реализован корректно, то, что используешь глобальный сид - тоже респект.


## 1.4 KNN
Это СУПЕР оригинальный способ взять только первые два индекса класса!!! Знаешь, я даже доп четвертинку балла поставлю!)

Круто реализован подход без циклов!

Предсказания для классов реализованы правильно. Но можно сделать это в векторном виде сразу для всего `X`. Как? Подсказка - заменить операциями из нампая цикл в `predict_labels_binary`.



Метрики для бинарной классификации реализованы правильно, но не учтены случаи, когда знаменатели равны 0, хотя про это предупреждали. Плюс для точности можно просто в векторном виде сравнить `y_true == y_pred` и поделить на общее число объектов. В остальном хорошо. Но мне придется снять тут полбалла. Ты же потом правильно сделала в векторном виде для многоклассовой точности!



Я бы даже к=4 взял, все-таки мы смотрим на тест, а для трейна у нас мог быть сплит плохой. Для теста-то метрики хорошие все равно. Но 2 тоже нормально

## 1.5 Multiclass KNN

Опять же, печатай всегда, что за число ты выводишь! Очень важно для работы.

# 2 EDA

## 2.1

EDA бедноват, не помешала бы гистограмма. Сниму четверть балла

## 2.2-2.4

Метрики реализованы правильно! В целом можно было бы воспользоваться предыдуще написанной функцией для подбора к, новую не писать, а только передавать метрику как аргумент.

Отсутствует анализ выбора к, хоть и графики хорошие. Вынужден снять четверть балла


# 3 Social

Приходи на тусовку в следующий раз)

Итог:
- 1.1 - 0.5/0.5
- 1.2 - 1/1
- 1.3 - 0.5/0.5
- 1.4 - 5.5/6 + 0.25
- 1.5 - 2/2
- 2.1 - 1.75/2
- 2.2 - 1/1
- 2.3 - 3/3
- 2.4 - 1.75/2
- 3 - 0


ШТРАФЫ: У тебя их нет) Отдельное спасибо тебе за `requirements.txt`, это очень хорошо, что ты его вставила, впредь пожалуйста делай это с версиями. Поэтому я за негро тебе тоже хочу добавить 0.25 балла!

TOTAL: 16 + 0.5 = 16.5