Кейс 3. Классификация с RubixML
Кейс 3. Классификация с RubixML
Теперь посмотрим, как тот же подход выглядит с использованием готовой реализации.
Обучение и предсказание
<?php
require 'vendor/autoload.php';
use Rubix\ML\Datasets\Labeled;
use Rubix\ML\Classifiers\KNearestNeighbors;
use Rubix\ML\Kernels\Distance\Euclidean;
$samples = [
[5, 2.1],
[3, 1.8],
[10, 6.5],
[12, 7.0],
[9, 5.8],
];
$labels = ['casual', 'casual', 'engaged', 'engaged', 'engaged'];
$dataset = new Labeled($samples, $labels);
$model = new KNearestNeighbors(3, new Euclidean());
$model->train($dataset);
$prediction = $model->predict([[8, 5.5]]);
print_r($prediction);Здесь kNN уже упакован в аккуратный API, но концептуально происходит ровно то же самое:
– вычисление расстояний – выбор k соседей – голосование
Что важно вынести из кейсов
kNN – это алгоритм, который легко реализовать вручную и трудно оптимизировать без библиотек. Именно поэтому он идеально подходит для обучения:
– геометрии данных – роли метрик расстояния – локальных решений – компромисса между простотой и масштабируемостью
Поняв эти примеры, читателю уже гораздо легче воспринимать более сложные алгоритмы, которые делают те же самые вещи, но в более скрытом виде.
Last updated