データ前処理と特徴エンジニアリングに PHP を使用する方法
データ前処理と特徴エンジニアリングはデータ サイエンスにおいて非常に重要なステップであり、データのクリーンアップ、欠損値の処理、特徴の抽出と変換の実行に役立ちます。 、機械学習および深層学習モデルに必要な入力データを準備します。この記事では、PHP を使用してデータの前処理と特徴量エンジニアリングを行う方法について説明し、開始するためのコード例をいくつか示します。
$csvFile = 'data.csv'; $data = []; if (($handle = fopen($csvFile, 'r')) !== false) { while (($row = fgetcsv($handle)) !== false) { $data[] = $row; } fclose($handle); } // 打印数据 print_r($data);
foreach ($data as &$row) { for ($i = 0; $i < count($row); $i++) { if ($row[$i] === null || $row[$i] === '') { // 填充缺失值为0 $row[$i] = 0; } } }
foreach ($data as &$row) { for ($i = 0; $i < count($row); $i++) { if ($row[$i] < $lowerThreshold || $row[$i] > $upperThreshold) { // 替换异常值为平均值 $row[$i] = $meanValue; } } }
$newData = []; $uniqueKeys = []; foreach ($data as $row) { $key = implode('-', $row); if (!in_array($key, $uniqueKeys)) { $newData[] = $row; $uniqueKeys[] = $key; } } // 更新数据 $data = $newData;
$categories = ['cat', 'dog', 'rabbit']; $encodedData = []; foreach ($data as $row) { $encodedRow = []; foreach ($row as $value) { if (in_array($value, $categories)) { // 使用数字编码离散特征值 $encodedRow[] = array_search($value, $categories); } else { // 原样保留其他特征值 $encodedRow[] = $value; } } $encodedData[] = $encodedRow; }
$normalizedData = []; foreach ($data as $row) { $mean = array_sum($row) / count($row); // 计算平均值 $stdDev = sqrt(array_sum(array_map(function ($value) use ($mean) { return pow($value - $mean, 2); }, $row)) / count($row)); // 计算标准差 $normalizedRow = array_map(function ($value) use ($mean, $stdDev) { // 标准化特征值 return ($value - $mean) / $stdDev; }, $row); $normalizedData[] = $normalizedRow; }
require 'vendor/autoload.php'; use PhpmlClusteringKMeans; $clusterer = new KMeans(3); // 设定聚类数为3 $clusterer->train($normalizedData); $clusterLabels = $clusterer->predict($normalizedData); // 打印聚类结果 print_r($clusterLabels);
上記は、PHP をデータの前処理と特徴エンジニアリングに使用する方法の簡単な例です。もちろん、データ前処理や特徴エンジニアリングには他にも多くの操作や手法があり、具体的な選択や実装は特定の問題やニーズに基づいて決定できます。この記事が、データ前処理と特徴量エンジニアリングを開始し、機械学習と深層学習モデルをトレーニングするための強固な基盤を築くのに役立つことを願っています。
以上がデータの前処理と特徴エンジニアリングに PHP を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。