PHP 机器学习:ML 库概览

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

PHP 机器学习:实现 ML 算法的库概览



尽管 Python 传统上被认为是机器学习的主要语言,但 PHP 也拥有几个强大的库,可以直接在 Web 应用程序中集成 ML 模型。在本文中,我们将介绍 PHP 机器学习的主要工具、它们的功能和使用示例。



为什么选择 PHP 进行机器学习?

PHP 仍然是 Web 开发中最流行的语言之一。使用 PHP 的 ML 库可以:

  • 将模型直接集成到现有的 Laravel/Symfony 项目中
  • 避免在单个项目中切换语言
  • 使用熟悉的 Composer 生态系统和自动加载
  • 在廉价主机上快速部署原型


1. PHP-ML — PHP 机器学习的标准

PHP-ML(PHP 机器学习库)是 PHP 中最流行的 ML 库。它提供了广泛的算法,无需外部依赖。



安装

composer require php-ai/php-ml


示例:文本分类

<?phprequire_once __DIR__ . '/vendor/autoload.php';

use Phpml\\Classification\\KNearestNeighbors;use Phpml\\FeatureExtraction\\TfIdfTransformer;use Phpml\\Tokenization\\WhitespaceTokenizer;use Phpml\\FeatureExtraction\\TokenCountVectorizer;

// 训练数据$samples = [ 'отличный товар быстрая доставка', 'ужасное качество брак', 'рекомендую всем друзьям', 'не работает сломалось через день'];$labels = ['positive', 'negative', 'positive', 'negative'];

// 将文本转换为向量$vectorizer = new TokenCountVectorizer(new WhitespaceTokenizer());$vectorizer->fit($samples);$vectorizer->transform($samples);

$transformer = new TfIdfTransformer();$transformer->fit($samples);$transformer->transform($samples);

// 训练模型$classifier = new KNearestNeighbors();$classifier->train($samples, $labels);

// 预测$testSample = ['прекрасный продукт качество'];$vectorizer->transform($testSample);$transformer->transform($testSample);

$predicted = $classifier->predict($testSample[0]);echo "Тональность: $predicted"; // positive?>


PHP-ML 的功能

  • 分类: KNearestNeighbors, NaiveBayes, SVC, DecisionTree
  • 回归: LeastSquares, Ridge, LogisticRegression
  • 聚类: KMeans, DBSCAN, FuzzyCMeans
  • 文本处理: TF-IDF, 词干提取, 分词
  • 指标: accuracy, precision, recall, confusion matrix


2. Rubix ML — 现代机器学习框架

Rubix ML 是一个更新、性能更高的库,支持神经网络、GPU 加速和数据处理管道。



安装

composer require rubix/ml


示例:用于分类的神经网络

<?phprequire_once __DIR__ . '/vendor/autoload.php';

use Rubix\\ML\\Datasets\\Labeled;use Rubix\\ML\\NeuralNet\\Layers\\Dense;use Rubix\\ML\\NeuralNet\\Layers\\Activation;use Rubix\\ML\\NeuralNet\\ActivationFunctions\\ReLU;use Rubix\\ML\\NeuralNet\\ActivationFunctions\\Softmax;use Rubix\\ML\\NeuralNet\\Optimizers\\Adam;use Rubix\\ML\\Classifiers\\MultilayerPerceptron;use Rubix\\ML\\CrossValidation\\Reports\\MulticlassBreakdown;

// 创建数据集$samples = [[2.5, 1.2], [1.0, 0.8], [3.5, 4.2], [2.0, 0.5]];$labels = ['cat', 'dog', 'cat', 'dog'];$dataset = new Labeled($samples, $labels);

// 创建 MLP(多层感知器)$mlp = new MultilayerPerceptron([ new Dense(10), new Activation(new ReLU()), new Dense(5), new Activa

推荐