14 個の数値列を含む ARFF ファイルがあります。各列で個別に正規化を実行したい、つまり、各列の値を ( actual_value - min(this_column)) / (max(this_column) - min(this_column)
) に変更します。したがって、列のすべての値は範囲内になります[0, 1]
。列の最小値と最大値は、別の列のものとは異なる場合があります。
Weka フィルターでこれを行うにはどうすればよいですか?
ありがとう
14 個の数値列を含む ARFF ファイルがあります。各列で個別に正規化を実行したい、つまり、各列の値を ( actual_value - min(this_column)) / (max(this_column) - min(this_column)
) に変更します。したがって、列のすべての値は範囲内になります[0, 1]
。列の最小値と最大値は、別の列のものとは異なる場合があります。
Weka フィルターでこれを行うにはどうすればよいですか?
ありがとう
これは、を使用して行うことができます
weka.filters.unsupervised.attribute.Normalize
このフィルターを適用すると、各列のすべての値が[0、1]の範囲になります。
それは正しい。「正規化」と「標準化」の違いについて思い出したかっただけです。質問で言及されているのは「標準化」であり、「正規化」はガウス分布を仮定して平均で正規化し、各属性の標準偏差です。データに外れ値がある場合、標準化フィルターは、最小値または最大値が他のインスタンスよりもはるかに離れているため、データ分布を損なう可能性があります。