ML - устранение неточностей и багов ML - оптимизация производительности DecisionTreeRegressor.Fit, RandomForestRegressor.Fit ML - тесты
57 lines
1.5 KiB
ObjectPascal
57 lines
1.5 KiB
ObjectPascal
// В этом примере подбирается коэффициент регуляризации
|
||
// для LogisticRegression с помощью GridSearch.
|
||
|
||
uses MLABC;
|
||
|
||
begin
|
||
var (X, y) := Datasets.MakeClassification(
|
||
n := 400,
|
||
nFeatures := 6,
|
||
nInformative := 3,
|
||
nRedundant := 1,
|
||
noise := 0.2,
|
||
classSep := 1.0,
|
||
flipProb := 0.06,
|
||
seed := 42
|
||
);
|
||
|
||
var scaler := new StandardScaler;
|
||
scaler.Fit(X);
|
||
X := scaler.Transform(X);
|
||
|
||
var lambdaValues := [0.0, 0.01, 0.1, 0.5, 1.0, 2.0, 5.0];
|
||
|
||
Println('Подбор параметра lambda для LogisticRegression');
|
||
Println;
|
||
Println('Проверяемые значения lambda:');
|
||
|
||
foreach var lambda in lambdaValues do
|
||
begin
|
||
var score := Validation.StratifiedCrossValidate(
|
||
new LogisticRegression(lambda := lambda, learningRate := 0.05, epochs := 1000),
|
||
X, y,
|
||
5,
|
||
ClassificationMetrics.Accuracy,
|
||
seed := 42
|
||
);
|
||
|
||
Println($' lambda = {lambda,4:F2} -> средняя Accuracy = {score:F3}');
|
||
end;
|
||
|
||
Println;
|
||
|
||
var (bestLambda, bestScore, bestModel) := GridSearch.Search(
|
||
lambda -> new LogisticRegression(lambda := lambda, learningRate := 0.05, epochs := 1000),
|
||
lambdaValues,
|
||
X, y,
|
||
5,
|
||
ClassificationMetrics.Accuracy,
|
||
maximize := True,
|
||
stratified := True,
|
||
seed := 42
|
||
);
|
||
|
||
Println($'Лучшее значение lambda: {bestLambda:F2}');
|
||
Println($'Лучшая средняя Accuracy: {bestScore:F3}');
|
||
end.
|