1. 目的
2. 準備
3. 必要なpackageのdownload
4. 必要なmoduleのimport
5. CSVファイルの読み込み
6. 2変数の定義
7. MAEの計算
8. RMSEの計算
9. 使用したコードまとめ
1. 目的
Pythonを使って平均絶対誤差(Mean Absolute Error:MAE)と二乗平均平方根誤差(Root Mean Squared Error:RMSE)を計算する。
2. 準備
CSVファイルに2変数のデータを書き込む。
1列目はLabel、2列目はAIの予測値(Predicted)。
今回はdata.csvとして保存する。
label | predicted |
---|---|
0.11 | -0.615615 |
0.86 | 0.29520833 |
. | . |
. | . |
. | . |
-0.14 | -0.2419486 |
3. 必要なpackageのdownload
Terminal(端末)を開いて、以下のコマンドをタイプして必要なパッケージをダウンロードする。
コピペするときに$マークは抜いてコピペしてください。
$には実は意味がありますが、ここでは省略…
1 2 3 | $ sudo pip3 install pandas $ sudo pip3 install numpy $ sudo pip3 install scikit-learn |
4. 必要なmoduleのimport
TermitalでPythno3を起動し、以下のコマンドを実行することで計算に必要なmoduleをimportする。
1 2 3 4 5 6 7 | # CSVを読み込み用 import pandas as pd # Mean Absolute Error(MAE)用 from sklearn.metrics import mean_absolute_error # Root Mean Squared Error(RMSE)用 from sklearn.metrics import mean_squared_error import numpy as np |
5. CSVファイルの読み込み
比べたい2変数が保存されているdata.csvから値を取り出す。
ファイル名がdata.csv出ない場合は、data.csvの部分を適宜変えてください。
1 2 | # CSV読み込み data = pd.read_csv( 'data.csv' ) |
6. 2変数の定義
labelとAIの予測値(predicted)を定義。
1 2 3 4 | ## label data label = data[ 'label' ] ## AI predicted data pred = data[ 'predicted' ] |
7. MAEの計算
以下のコマンドでMAEを計算できる。
{:.3f}と書いてやることで小数点以下3桁だけ表示する。
1 2 | mae = mean_absolute_error(label, pred) print ( 'MAE : {:.3f}' . format (mae)) # {:.3f}で小数点以下は3桁で表示 |
8. RMSEの計算
1 2 3 | #RMSE計算 rmse = np.sqrt(mean_squared_error(label, pred)) print ( 'RMSE : {:.3f}' . format (rmse)) |
9. 使用したコードまとめ
以下に使用したコードをまとめたものを記載しておく。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 | # CSVを読み込み用 import pandas as pd # Mean Absolute Error(MAE)用 from sklearn.metrics import mean_absolute_error # Root Mean Squared Error(RMSE)用 from sklearn.metrics import mean_squared_error import numpy as np # CSV読み込み data = pd.read_csv( 'data.csv' ) ## label data label = data[ 'label' ] ## AI predicted data pred = data[ 'predicted' ] # MAE計算 mae = mean_absolute_error(label, pred) print ( 'MAE : {:.3f}' . format (mae)) # {:.3f}で小数点以下は3桁で表示 # RMSE計算 rmse = np.sqrt(mean_squared_error(label, pred)) print ( 'RMSE : {:.3f}' . format (rmse)) |