implementation of basic ML algorithms
- KNN - базовый класс, основанный на подсчёте матрицы расстояний
- KNNClassifier - алгоритм классификации
- KNNRegressor - алгоритм регресии
- BatchedKNNClassifier - модификация классификатора для подстёта по батчам
- BatchedKNNRegressor - модификация регрессора для подсчёта по батчам
Реализация содержит:
- евклидову и косинусную метрику
- поддержку поиска методами kd_tree, ball_tree, brute из sklearn
- вычисление классов путём госования или взвешивания (регрессия Надарая-Ватсона)
- LinReg - аналитическое нахождение весов
- GradLinRed - нахождение весов градиентным спуском по всей выборке
- SGDLinReg - нахождение весов градиентным спуском по батчам
- LogReg - логистическая регрессия для бинарной классификации на градиентном спуске
- SGDLogReg - логистическая регрессия для бинарной классификации по батчам
- SoftmaxRegression - логистическая регрессия для многоклассовой классификации
- SGDSoftmaxReg - логистическая регрессия для многоклассовой классификации по батчам
- ElasticLogReg - логистическая регрессия для бинарной классификации с регуляризациями Ridge и Lasso
- ElasticSoftmaxReg - логистическая регрессия для многоклассовой классификации с регуляризациями Ridge и Lasso
- LinearClassifier - обобщенная модель линейного классификатора (аналог SGDClassifier) для меток {-1,1}
- ClassificationDecisionTree - алгоритм классификации на основе дерева решений
- RegressionDecisionTree - алгоритм регрессии на основе дерева решений
Реализация содержит:
- энтропийный критерий
- критерй Джини
- MSE критерий
- LinearSVC - классический линейный классификатор методом опорных векторов
- SVC - классификатор с использованием ядер:
- Linear - линейное ядро
- RBF - радиальное базисное ядро
- LinSVR - классический линейный регрессор методом опорных векторов
- Bagger - базовый класс, осуществляющий выборку без возвращений из строк и столбцов матрицы
- BaggingClassifier - поддерживает классификацию для дерева решений и ближайшего соседа
- BaggingRegressor - поддерживает регрессию для дерева решений и ближайшего соседа
Данные алгоритмы выбраны из-за своей неустойчивости, так как только с такими концепция бэггинга будет работать хорошо
- Booster - базовый класс с прототипами функций для градиентного бустинга (в качестве первого алгоритма выбрана линейная регрессия)
- BoostingClassifier - градиентный бустинг для бинарной классификации, использующий производную logloss
- BoostingMultiClassifier - градиентный бустинг для многоклассовой классификации, использующий производную кросс-энтропии
- BoostingRegressor - градиентный бустинг для задачи регрессии, использующий производную mse loss
- AdaBoosting - бинарный классификатор на основе адаптивного бустинга над решающими деревьями
- MultiClassAdaBoosting - классификатор для многих классов на основе адаптивного бустинга над решающими деревьями
- Kmeans - стандартная реализация алгоритма Ллойда для кластеризации
- Soft-Kmeans - тот же метод k-средних, но с мягкой кластеризацией через softmax расстояний до центров