いつもお世話になっております。
現在、機械学習の基礎を勉強するためにPythonによるAIプログラミング入門
という書籍を利用して学習を行っています。
補足すると、機械学習、数学、統計の知識はほぼ0です。
書籍の2.3.2 平均値を引く
という項があったのですが、これが良く理解出来ません。
2.3.2
ではsklearn
を利用してデータセットの前処理を行うといった内容が記載してあります。
書籍には下記の様な、説明とソースコードが記載してあります。
説明
平均値を引くのは、機械学習で一般的に使われる前処理です。特徴ベクトルから平均を引くと、特徴量の中心が原点になります。特徴ベクトルからバイアスを除去するために、平均を引くわけです。
python
1import numpy as np 2from sklearn import preprocessing 3 4input_data = np.array([[5.1, -2.9, 3.3], 5 [-1.2, 7.8, -6.1], 6 [3.9, 0.4, 2.1], 7 [7.3, -9.9, -4.5]]) 8print("BEFORE:") 9print("Mean =", input_data.mean(axis=0)) 10print("Std deviation =", input_data.std(axis=0)) 11 12data_scaled = preprocessing.scale(input_data) 13print("AFTER:") 14print("Mean =", data_scaled.mean(axis=0)) 15print("Std deviation =", data_scaled.std(axis=0))
上記の説明で、なぜ特徴ベクトルから平均を引くことでバイアスが除去できるのかが分かりません。
簡単に言うと、平均を引くことのメリットを教えて頂きたいです。
ご存じの方がいましたら、ご教授のほどよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/05 11:04