欠損値補完

様々な理由で、多くの実際の世界のデータセットはしばしば空白に符号化される欠測値、NaN、あるいは他のプレースフォルダを含みます。この問題を解決するために、Imputer クラスを使うことができます。

コンストラクタのパラメータ

  • $missingValue (mixed) - この値は置き換えらえるでしょう (デフォルト null)
  • $strategy (Strategy) - 転嫁ストラテジ (使う時には以下を読んでください : MeanStrategy, MedianStrategy, MostFrequentStrategy)
  • $axis (int) - 戦略のための軸、Imputer::AXIS_COLUMN あるいは Imputer::AXIS_ROW
$imputer = new Imputer(null, new MeanStrategy(), Imputer::AXIS_COLUMN);
$imputer = new Imputer(null, new MedianStrategy(), Imputer::AXIS_ROW);

戦略

  • MeanStrategy - 軸に沿った平均を使って欠測値を置き換えます
  • MedianStrategy - 軸に沿った中央値を使って欠測値を置き換えます
  • MostFrequentStrategy - 軸に沿った最頻値を使って欠測値を置き換えます

使用例

use Phpml\Preprocessing\Imputer;
use Phpml\Preprocessing\Imputer\Strategy\MeanStrategy;

$data = [
    [1, null, 3, 4],
    [4, 3, 2, 1],
    [null, 6, 7, 8],
    [8, 7, null, 5],
];

$imputer = new Imputer(null, new MeanStrategy(), Imputer::AXIS_COLUMN);
$imputer->transform($data);

/*
$data = [
    [1, 5.33, 3, 4],
    [4, 3, 2, 1],
    [4.33, 6, 7, 8],
    [8, 7, 4, 5],
];
*/