Примеры ML

This commit is contained in:
Mikhalkovich Stanislav 2026-03-13 23:10:59 +03:00
parent aa2b09dd3b
commit af7cc99e15
15 changed files with 185 additions and 0 deletions

View file

@ -0,0 +1,28 @@
uses MLABC, PlotML;
begin
var ds := Datasets.Iris;
var (X, labels) := ds.ToXYInt;
var names := ds.Features;
var n := names.Length;
var fig := Plot.Grid(n, n);
for var i := 0 to n-1 do
for var j := 0 to n-1 do
begin
var ax := fig[i,j];
ax.Points(X.Col(j), X.Col(i), labels, size := 3);
{if i = n-1 then
ax.XLabel(names[j]);
if j = 0 then
ax.YLabel(names[i]);}
end;
Plot.Title('Iris: пары признаков');
end.

View file

@ -0,0 +1,11 @@
uses MLABC, PlotML;
begin
var ds := Datasets.Iris;
var (X, labels) := ds.ToXYInt;
Plot.PairPlot(X.Data, labels, ds.Features);
Plot.Title('Iris: пары признаков');
end.

View file

@ -0,0 +1,17 @@
uses MLABC;
begin
var ds := Datasets.Iris;
var (X, y) := ds.ToXY;
var model := new LogisticRegression;
model.Fit(X, y);
var pred := model.Predict(X);
var acc := Metrics.Accuracy(y, pred);
Println('Accuracy:', acc:0:3);
end.

View file

@ -0,0 +1,20 @@
uses MLABC;
begin
var ds := Datasets.Iris;
var (X, y) := ds.ToXY;
//var model := new LogisticRegression;
//var model := new RandomForestClassifier();
//var model := new DecisionTreeClassifier();
var model := new GradientBoostingClassifier();
model.Fit(X, y);
var pred := model.Predict(X);
var acc := Metrics.Accuracy(y, pred);
Println('Accuracy:', acc:0:3);
end.

View file

@ -0,0 +1,26 @@
uses MLABC;
//var model := new LogisticRegression;
//var model := new RandomForestClassifier();
//var model := new DecisionTreeClassifier();
//var model := new GradientBoostingClassifier();
begin
var ds := Datasets.Iris;
var (X, y) := ds.ToXY;
var (Xtrain, Xtest, ytrain, ytest) :=
Validation.TrainTestSplit(X, y, 0.2);
var model := new GradientBoostingClassifier(seed := -1);
model.Fit(Xtrain, ytrain);
var pred := model.Predict(Xtest);
var acc := Metrics.Accuracy(ytest, pred);
Println('Accuracy:', acc:0:3);
end.

View file

@ -0,0 +1,26 @@
uses MLABC;
//var model := new LogisticRegression;
//var model := new RandomForestClassifier();
//var model := new DecisionTreeClassifier();
//var model := new GradientBoostingClassifier();
begin
var ds := Datasets.Iris;
var (train, test) := ds.TrainTestSplit;
var (Xtrain, ytrain) := train.ToXY;
var (Xtest, ytest) := test.ToXY;
var model := new RandomForestClassifier(seed := -1);
model.Fit(Xtrain, ytrain);
var pred := model.Predict(Xtest);
var acc := Metrics.Accuracy(ytest, pred);
Println('Accuracy:', acc:0:3);
end.

View file

@ -0,0 +1,22 @@
uses MLABC;
//new LogisticRegression();
//new RandomForestClassifier();
//new DecisionTreeClassifier();
//new GradientBoostingClassifier();
begin
var ds := Datasets.Iris;
var (X, y) := ds.ToXY;
var acc :=
Validation.StratifiedCrossValidate(
new RandomForestClassifier(),
X,
y,
5,
Metrics.Accuracy,
42);
Println('CV accuracy:', acc:0:3);
end.

View file

@ -0,0 +1,21 @@
uses MLABC;
begin
// Откомментируйте - всё станет по-английски
//Datasets.Language := 'en';
var ds := Datasets.Iris;
ds.Info;
Println;
ds.Classes.Println;
Println;
ds.ClassCounts.PrintLines;
Println;
ds.Classes.PrintLines(c -> ds.ClassName(c));
Println;
ds.ClassCounts.PrintLines(kv -> ds.ClassName(kv.Key) + ' → ' + kv.Value);
end.

View file

@ -0,0 +1,14 @@
uses MLABC;
begin
Datasets.Language := 'ru';
var ds := Datasets.MoscowHousing;
ds.Info;
Println;
Println('Первые строки:');
ds.Head.Println(1);
ds.Data.Schema.Print
end.