ML - устранение неточностей и багов ML - оптимизация производительности DecisionTreeRegressor.Fit, RandomForestRegressor.Fit ML - тесты
51 lines
1.2 KiB
ObjectPascal
51 lines
1.2 KiB
ObjectPascal
// В этом примере подбирается число соседей k
|
||
// для KNNClassifier с помощью GridSearch.
|
||
|
||
uses MLABC;
|
||
|
||
begin
|
||
var (X, y) := Datasets.MakeMoons(
|
||
n := 400,
|
||
noise := 0.18,
|
||
seed := 42
|
||
);
|
||
|
||
var scaler := new StandardScaler;
|
||
scaler.Fit(X);
|
||
X := scaler.Transform(X);
|
||
|
||
var kValues := [1, 3, 5, 7, 9, 11, 15];
|
||
|
||
Println('Подбор параметра k для KNNClassifier');
|
||
Println;
|
||
Println('Проверяемые значения k:');
|
||
|
||
foreach var k in kValues do
|
||
begin
|
||
var score := Validation.StratifiedCrossValidate(
|
||
new KNNClassifier(k, KNNWeighting.Distance),
|
||
X, y,
|
||
5,
|
||
ClassificationMetrics.Accuracy,
|
||
seed := 42
|
||
);
|
||
|
||
Println($' k = {k,2} -> средняя Accuracy = {score:F3}');
|
||
end;
|
||
|
||
var (bestK, bestScore, bestModel) := GridSearch.Search(
|
||
k -> new KNNClassifier(k, KNNWeighting.Distance),
|
||
kValues,
|
||
X, y,
|
||
5,
|
||
ClassificationMetrics.Accuracy,
|
||
maximize := True,
|
||
stratified := True,
|
||
seed := 42
|
||
);
|
||
|
||
Println;
|
||
Println($'Лучшее значение k: {bestK}');
|
||
Println($'Лучшая средняя Accuracy: {bestScore:F3}');
|
||
end.
|