Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Требуется реализовать на языке Python функцию, вычисляющую значение энтропии заданной выборки.
entropy(y) = − ∑v = set(y)p(v)log p(v)
где set(y) — множество уникальных значений вектора y.
import numpy as np
def entropy(y: np.ndarray) -> float:
"""Computes entropy value for labels `y`.
Arguments:
y: 1d array of integers, sample labels
Returns:
float, entropy value for labels `y`"""
pass
Функция принимает единственный параметр y
— одномерный np.array
, значения классов в обучающей выборке.
При решении задачи следует использовать натуральный логарифм.
Код должен содержать только реализацию функции. Запрещено пользоваться любыми готовыми реализациями вычисления функции entropy
.
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Требуется реализовать на языке Python функцию, вычисляющую значение gini impurity заданной выборки.
gini(y) = 1 − ∑v = set(y)p2(v)
где set(y) — множество уникальных значений вектора y.
import numpy as np
def gini(y: np.ndarray) -> float:
"""Computes gini impurity value for labels `y`.
Arguments:
y: 1d array of integers, sample labels
Returns:
float, gini impurity value for labels `y`"""
pass
y
— одномерный np.array
— значения классов в выборке
Код должен содержать только реализацию функции. Запрещено пользоваться любыми готовыми реализациями вычисления функции gini
.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Входной файл: | Стандартный вход | Ограничение времени: | 10 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Требуется реализовать следующие функцию на языке Python.
def tree_split(X, y, criterion) # col, row of best split
X
— двумерный np.array
— обучающая выборка
y
— одномерный np.array
— значения классов в обучающей выборке
criterion
— строковое значение — вид критерия 'var'
, 'gini'
или 'entropy'
tree_split
должен возвращать номер признака и номер значения из обучающей выборки, которое будет использоваться в качестве порогового
Таким образом, tree_split
возвращает наилучшее бинарное разделение по правилу вида xcol ≤ X[row, col]
Код должен содержать только реализацию функции.
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Требуется реализовать следующие функцию на языке Python.
def knn_predict_simple(X, y, x, k) # array of pairs -- class and number of votes of neighbors
X
— двумерный np.array
— обучающая выборка
y
— реальные значения классов в обучающей выборке
x
— одномерный np.array
-- тестовый пример
k
— количество соседей, которые нужно рассматривать
Функция возвращает массив пар (класс, количество голосов) только для классов которые встречаются среди k ближайших соседей!
Для поиска ближайшего примера использовать евклидово расстояние.
Код должен содержать только реализацию функции.
Входной файл: | Стандартный вход | Ограничение времени: | 10 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Требуется реализовать функцию leave-one-out score на языке Python. Результат функции должен быть целочисленным, то есть его НЕ следует нормировать на размер выборки.
def loo_score(predict, X, y, k) # integer loo score for predict function
predict
— функция predict(X, y, x, k)
, обучающая некоторый алгоритм на выборке X, y
с параметром k
и дающая предсказание на примере x
X
— двумерный np.array
— обучающая выборка
y
— реальные значения классов в обучающей выборке
k
— количество соседей, которые нужно рассматривать
Код должен содержать только реализацию функции.