PHP 및 기계 학습: 이상 탐지 및 이상값 처리 수행 방법
개요:
실제 데이터 처리에서는 데이터 세트에서 이상값이 자주 발생합니다. 이상값은 측정 오류, 예측할 수 없는 이벤트, 데이터 원본 문제 등 다양한 이유로 발생할 수 있습니다. 이러한 이상값은 데이터 분석, 모델 교육, 예측과 같은 작업에 부정적인 영향을 미칠 수 있습니다. 이 기사에서는 이상 탐지 및 이상값 처리를 위해 PHP 및 기계 학습 기술을 사용하는 방법을 소개합니다.
1.1 Z-Score 방법:
Z-Score 방법은 통계 기반 이상 탐지 방법으로, 각 데이터 포인트의 평균값에서 편차 값을 계산하여 결정합니다. 데이터 세트 이상치입니까? 구체적인 단계는 다음과 같습니다.
샘플 코드는 다음과 같습니다.
function zscore($data, $threshold){ $mean = array_sum($data) / count($data); $std = sqrt(array_sum(array_map(function($x) use ($mean) { return pow($x - $mean, 2); }, $data)) / count($data)); $result = []; foreach ($data as $value) { $deviation = ($value - $mean) / $std; if (abs($deviation) > $threshold) { $result[] = $value; } } return $result; } $data = [1, 2, 3, 4, 5, 100]; $threshold = 3; $result = zscore($data, $threshold); echo "异常值检测结果:" . implode(", ", $result);
1.2 Isolation Forest:
Isolation Forest는 무작위로 분할된 이진 트리를 구축하여 데이터 포인트의 이상 여부를 판단하는 집합 트리 기반의 이상 탐지 방법입니다. 구체적인 단계는 다음과 같습니다.
샘플 코드는 다음과 같습니다.
require_once('anomaly_detection.php'); $data = [1, 2, 3, 4, 5, 100]; $contamination = 0.1; $forest = new IsolationForest($contamination); $forest->fit($data); $result = $forest->predict($data); echo "异常值检测结果:" . implode(", ", $result);
2.1 이상값 삭제:
간단한 처리 방법은 이상값을 직접 삭제하는 것입니다. 이상 탐지 결과에 따라 데이터 세트에서 임계값을 초과하는 데이터 포인트를 제거할 수 있습니다.
샘플 코드는 다음과 같습니다.
function removeOutliers($data, $threshold){ $result = []; foreach ($data as $value) { if (abs($value) <= $threshold) { $result[] = $value; } } return $result; } $data = [1, 2, 3, 4, 5, 100]; $threshold = 3; $result = removeOutliers($data, $threshold); echo "异常值处理结果:" . implode(", ", $result);
2.2 이상값 대체:
또 다른 접근 방식은 이상값을 평균 또는 중앙값과 같은 합리적인 값으로 대체하는 것입니다. 이러한 방식으로 데이터 세트의 전반적인 분포 특성을 보존할 수 있습니다.
샘플 코드는 다음과 같습니다.
function replaceOutliers($data, $threshold, $replacement){ $result = []; foreach ($data as $value) { if (abs($value) > $threshold) { $result[] = $replacement; } else { $result[] = $value; } } return $result; } $data = [1, 2, 3, 4, 5, 100]; $threshold = 3; $replacement = 0; $result = replaceOutliers($data, $threshold, $replacement); echo "异常值处理结果:" . implode(", ", $result);
결론:
이 글에서는 PHP와 머신러닝 기법을 활용한 이상치 탐지 및 이상값 처리 방법을 소개했습니다. Z-Score 방법과 격리 포리스트 알고리즘을 통해 이상값을 감지하고 필요에 따라 삭제하거나 교체할 수 있습니다. 이러한 방법은 데이터를 정리하고, 모델 정확도를 향상시키며, 보다 신뢰할 수 있는 데이터 분석 및 예측을 수행하는 데 도움이 될 수 있습니다.
코드 예제의 전체 구현은 GitHub에서 확인할 수 있습니다. 이 글이 여러분의 공부와 실천에 도움이 되기를 바랍니다.
참조:
위 내용은 PHP와 머신러닝: 이상 탐지 및 이상치 처리 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!