… habe PHP-ML etwas unkonventionell installieren können (Workaround über ein unsauber installiertes PHP 7.2 und Composer)
Für Interessierte hier das Testscript mit Anleitung im Header:
<?
/*//////////////////////////////////////////////////////////////////////////////
PHP Artificial Intelligence 2019
--------------------------------------------------------------------------------
Ziel: Installation in IP-Symcon
GitHub: https://github.com/php-ai
Problem: die Verzeichnisse liegen nur als Composer-Installationen vor
die Abhängigkeiten können nicht manuell erstellt werden
Workaround: php-ml-master installiert in ein frisches PHP 7.2 per Composer
--------------------------------------------------------------------------------
Vorgehen:
Quelle: https://windows.php.net/download (Achtung PHP 7.2 nehmen !!!)
--> Download php-7.2.14-nts-Win32-VC15-x64.zip
--> unter D:/ entpacken
--> Achtung: PHP ist so unsauber installiert, aber ich benötige die Version und Struktur nur für Composer !
Quelle: https://github.com/php-ai/php-ml
--> Download php-ml-master.zip
--> unter D:/php-ml-master entpacken
Quelle: https://getcomposer.org/download/
--> Download Composer-Setup.exe
--> Start mit Verweis auf D:/PHP
CMD aufrufen
--> Composer testen: "Composer Diagnose"
--> wenn OK weiter
--> in Verzeichnis wechseln: "cd D:/php-ml-master"
--> Composer in diesem Verzeichnis starten und php-ml-master installieren: "Composer Install"
Kopieren
--> gesamtes Verzeichnis D:/php-ml-master nach IP-Symcon/scripts/php-ml-master kopieren
Testen
--> siehe unten
/*//////////////////////////////////////////////////////////////////////////////
require_once __DIR__ . '/php-ml-master/vendor/autoload.php';
use Phpml\Classification\KNearestNeighbors;
$samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]];
$labels = ['a', 'a', 'a', 'b', 'b', 'b'];
$classifier = new KNearestNeighbors();
$classifier->train($samples, $labels);
echo $classifier->predict([3, 2]);
// return 'b'
echo ("
");
// Correlation /////////////////////////////////////////////////////////////////
use Phpml\Math\Statistic\Correlation;
$x = [43, 21, 25, 42, 57, 59];
$y = [99, 65, 79, 75, 87, 82];
echo Correlation::pearson($x, $y);
// return 0.549
echo ("
");
// Mean ////////////////////////////////////////////////////////////////////////
use Phpml\Math\Statistic\Mean;
echo Mean::arithmetic([2, 5]);
// return 3.5
echo ("
");
echo Mean::arithmetic([0.5, 0.5, 1.5, 2.5, 3.5]);
// return 1.7
echo ("
");
// Median //////////////////////////////////////////////////////////////////////
//use Phpml\Math\Statistic\Mean;
echo Mean::median([5, 2, 6, 1, 3, 4]);
// return 3.5
echo ("
");
echo Mean::median([5, 2, 6, 1, 3]);
// return 3
echo ("
");
?>
Gruß
André