Uzupełnianie brakujących wartości – PHP-ML
|Z różnych powodów, wiele zestawów danych ze świata rzeczywistego, zawiera brakujących wartości, często oznaczone jako puste pola, nulle lub inne symbole.
W takich celach (PHP-ML) zaimplementowałem klasę Imputer, która służy do uzupełniania brakujących wartości.
Parametry konstruktora
- $missingValue (mixed) – wartość, która ma zostać zastąpiona (domyślnie null)
- $strategy (Strategy) – strategia uzupełniania (interfejs, zaimplementowane strategie poniżej)
- $axis (int) – oś do obliczeń (kolumny lub wiersze: Imputer::AXIS_COLUMN lub Imputer::AXIS_ROW)
Strategie
- MeanStrategy – uzupełnia brakujące wartości wyliczając średnią wartość wzdłuż zadanej osi
- MedianStrategy -uzupełnia brakujęca wartości wyliczając medianę wzdłuż zadanej osi
- MostFrequentStrategy -uzupełnia brakujące wartości wyliczając najczęściej powtarzająca się wartość wzdłuż zadanej osi
Przykład użycia
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->preprocess($data);
W tym przypadku uzupełniać będziemy null wyliczając średnią wartość w danej kolumnie. Po przejściu przez podany kod tablica $data będzie wyglądać następująco:
$data = [
[1, 5.33, 3, 4],
[4, 3, 2, 1],
[4.33, 6, 7, 8],
[8, 7, 4, 5],
];