PHP机器学习:库与工具概览

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

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

开始课程

PHP机器学习:库与工具



传统上,机器学习(ML)与Python、R或Julia相关联。然而,PHP作为最流行的Web开发语言之一,也拥有实现ML算法的生态系统。尽管PHP不具备与NumPy或TensorFlow相同的性能和丰富的底层库,但对于许多实际任务——分类、回归、聚类、神经网络工作——已有成熟的解决方案。本文将介绍三种主要的PHP机器学习库:PHP-ML、Rubix ML和Keras-PHP。



1. PHP-ML (PHP Machine Learning)



PHP-ML 是最流行且最稳定的PHP机器学习库。它无需外部依赖,完全用PHP编写,并提供广泛的算法。该库非常适合学习、原型设计以及将ML集成到Web应用中。



主要功能:

  • 分类:朴素贝叶斯、SVM(基于LibSVM)、k近邻(k-NN)、决策树。
  • 回归:线性回归、支持向量回归(SVR)、k-NN回归。
  • 聚类:k均值(k-Means)、DBSCAN、层次聚类。
  • 评估指标:准确率、召回率、F1分数、混淆矩阵。
  • 数据预处理:归一化、标准化、分类特征编码。


示例:训练分类器判断文本情感

use Phpml\\Classification\\NaiveBayes;use Phpml\\FeatureExtraction\\TfIdfTransformer;use Phpml\\Tokenization\\WhitespaceTokenizer;

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

// 将文本转换为数值向量$tokenizer = new WhitespaceTokenizer();$transformer = new TfIdfTransformer();

// 创建并训练模型$classifier = new NaiveBayes();$classifier->train($samples, $labels);

// 预测$prediction = $classifier->predict(['интересный сюжет']);echo $prediction; // positive


2. Rubix ML



Rubix ML 是一个更现代、更先进的库,专注于高性能和灵活性。它支持通过生成器(惰性加载)处理大型数据集,具有内置的管道系统,并通过NDArray与TensorFlow集成。与PHP-ML不同,Rubix ML需要PHP 7.4+,并使用intl和mbstring等扩展。



主要特点:

  • 神经网络:多层感知器(MLP),支持多种激活函数(ReLU、Sigmoid、Softmax)。
  • 管道:将多个步骤(归一化、编码、训练)组合成一个管道。
  • 处理稀疏数据:针对大型矩阵的高效算法。
  • 可视化:内置绘图工具(通过SVG)。
  • 模型保存与加载:序列化为JSON或PHP序列化格式。


示例:房价预测回归

use Rubix\\ML\\Regressors\\Ridge;use Rubix\\ML\\Datasets\\Labeled;use Rubix\\ML\\Transformers\\NumericStringConverter;

// 加载数据(假设为CSV)$dataset = Labeled::fromIterator(new \\ArrayIterator([ ['area' => 120, 'rooms' => 3, 'price' => 150000], ['area' => 80, 'rooms' => 2, 'price' => 90000], ['area' => 200, 'rooms' => 4, 'price' =&g

推荐