Кейс 1. Фильтр подозрительных email – линейный перцептрон (чистый PHP)
<?php
class Perceptron
{
private array $w;
private float $b = 0.0;
private float $lr;
public function __construct(int $nFeatures, float $lr = 0.1)
{
$this->w = array_fill(0, $nFeatures, 0.0);
$this->lr = $lr;
}
public function predict(array $x): int
{
$z = $this->b;
foreach ($x as $i => $value) {
$z += $this->w[$i] * $value;
}
return $z > 0 ? 1 : 0;
}
public function train(array $X, array $y, int $epochs = 50): void
{
for ($e = 0; $e < $epochs; $e++) {
foreach ($X as $i => $x) {
$pred = $this->predict($x);
$error = $y[$i] - $pred;
foreach ($x as $j => $value) {
$this->w[$j] += $this->lr * $error * $value;
}
$this->b += $this->lr * $error;
}
}
}
}Вывод
PreviousПрактические кейсыNextКейс 2. Скоринг сотрудника – линейная комбинация как интерпретируемая модель
Last updated