用PHP实现机器学习(php-ml)

概要:简要叙述所要讨论的内容。

我觉得现在对于机器学习已经成为了司空见惯的感觉,
之前稍微接触过一点点,但是……

    • 【初心者向け】MacでDockerを使ってTensorFlowを試す(Jupyter Notebook)

 

    【初心者向け】MacでDockerを使ってTensorFlowの画像認識を試す

虽然只是简单地运行了示例样本,大致了解了其运行方式,但我觉得很难将其应用于实际产品中。
原因是我不懂Python,也不会写!(笑),这是一个很大的障碍。
所以我决定在我平时熟悉的PHP中寻找是否有机器学习的解决方案,并尝试了一个看起来很不错的选项。

准备好了

使用composer安装软件包。

$ sudo composer require php-ai/php-ml

以上 .

样本代码

本文中包含了很多示例代码,下面挑选一些来介绍。

K-邻近算法

k近傍法被认为是几乎所有机器学习算法中最简单的一种。一个对象的分类是通过其附近对象群的投票来决定的(也就是说,在最近的k个对象群中,将最常见的类别分配给该对象)。

    • k近傍法

 

    K最近傍分類器

运行示例代码

require_once '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'

多元线性回归

“複合”這個詞用於線性回歸表示使用了兩個以上的樣本參數來預測目標。

    最小二乗線形回帰

样本代码

require_once 'vendor/autoload.php';

use Phpml\Regression\LeastSquares;

$samples = [[73676, 1996],
            [77006, 1998],
            [10565, 2000],
            [146088, 1995],
            [15000, 2001],
            [65940, 2000],
            [9300, 2000],
            [93739, 1996],
            [153260, 1994],
            [17764, 2002],
            [57000, 1998],
            [15000, 2000]];
$targets = [2000,
            2750,
            15500,
            960,
            4400,
            8800,
            7100,
            2550,
            1025,
            5900,
            4600,
            4400];

$regression = new LeastSquares();
$regression->train($samples, $targets);
echo $regression->predict([60000, 1996]);
// return 4094.82

皮尔逊相关性

在衡量两个概率变量之间线性关系的强弱时使用的指标。
通常,简单地提到相关系数即指皮尔逊积矩相关系数。

    • 相関係数

 

    統計値

示例代码

require_once 'vendor/autoload.php';

use Phpml\Math\Statistic\Correlation;

$x = [43, 21, 25, 42, 57, 59];
$y = [99, 65, 79, 75, 87, 82];

Correlation::pearson($x, $y);
// return 0.549

触动

我认为从导入到运行示例代码相当容易使用。如果对PHP熟悉的人可以通过示例代码将学习的数据反映到某种产品中,从而实施机器学习,这可能可行。我确实意识到平时习惯的代码与之有所不同。哈哈
虽然我也在其他资料上看到过,但如果会Python的话,我认为最好使用Python。(TensorFlow,Chainer,Keras等等)
正如这里所说的,我觉得Python正变得越来越受欢迎,所以或许现在是该学习的时候了。(Python成为2017年的霸权语言)

以下是一些可供參考的資料。

    • php-ml

 

    • PHP-ML – PHPのための機械学習ライブラリ

 

    PHP-MLを使用して気軽に機械学習にトライしてみる
广告
将在 10 秒后关闭
bannerAds