
import numpy as np
# 乱数の生成
X = np.random.randint(1,100,100)
Y = np.random.randint(1,100000,100)
import pandas as pd
# データフレームに保存
data = pd.DataFrame({"X":X,"Y":Y})
data.head()
| X | Y | |
|---|---|---|
| 0 | 89 | 94082 |
| 1 | 31 | 52659 |
| 2 | 17 | 87102 |
| 3 | 93 | 98900 |
| 4 | 95 | 9944 |
import matplotlib.pyplot as plt
%matplotlib inline
# 散布図
data.plot(kind="scatter",x="X",y="Y")
plt.xlim(0,10000)
(0.0, 10000.0)
data.min()["X"]
np.int64(3)
# X, Yの最小値、最大値
X_min = data.min()["X"]
X_max = data.max()["X"]
Y_min = data.min()["Y"]
Y_max = data.max()["Y"]
# Xの正規化
data["X_n"] = (data["X"] - X_min) / (X_max - X_min)
# Yの正規化
data["Y_n"] = (data["Y"] - Y_min) / (Y_max - Y_min)
data.head()
| X | Y | X_n | Y_n | |
|---|---|---|---|---|
| 0 | 89 | 94082 | 0.895833 | 0.945976 |
| 1 | 31 | 52659 | 0.291667 | 0.524857 |
| 2 | 17 | 87102 | 0.145833 | 0.875015 |
| 3 | 93 | 98900 | 0.937500 | 0.994958 |
| 4 | 95 | 9944 | 0.958333 | 0.090602 |
data.describe()
| X | Y | X_n | Y_n | |
|---|---|---|---|---|
| count | 100.00000 | 100.000000 | 100.000000 | 100.000000 |
| mean | 55.54000 | 56726.630000 | 0.547292 | 0.566209 |
| std | 28.62203 | 28431.365442 | 0.298146 | 0.289042 |
| min | 3.00000 | 1032.000000 | 0.000000 | 0.000000 |
| 25% | 31.00000 | 33732.250000 | 0.291667 | 0.332441 |
| 50% | 59.50000 | 59819.500000 | 0.588542 | 0.597653 |
| 75% | 83.25000 | 80473.500000 | 0.835938 | 0.807628 |
| max | 99.00000 | 99396.000000 | 1.000000 | 1.000000 |
data.plot(kind="scatter",x="X_n",y="Y_n")
<Axes: xlabel='X_n', ylabel='Y_n'>
# X, Yの平均値
X_mean = data["X"].mean()
X_std = data["X"].std()
Y_mean = data["Y"].mean()
Y_std = data["Y"].std()
# Xの標準化
data["X_s"] = (data["X"] - X_mean) / X_std
# Yの標準化
data["Y_s"] = (data["Y"] - Y_mean) / Y_std
data.head()
| X | Y | X_n | Y_n | X_s | Y_s | |
|---|---|---|---|---|---|---|
| 0 | 89 | 94082 | 0.895833 | 0.945976 | 1.169030 | 1.313879 |
| 1 | 31 | 52659 | 0.291667 | 0.524857 | -0.857382 | -0.143068 |
| 2 | 17 | 87102 | 0.145833 | 0.875015 | -1.346515 | 1.068375 |
| 3 | 93 | 98900 | 0.937500 | 0.994958 | 1.308782 | 1.483340 |
| 4 | 95 | 9944 | 0.958333 | 0.090602 | 1.378658 | -1.645458 |
data.describe()
| X | Y | X_n | Y_n | X_s | Y_s | |
|---|---|---|---|---|---|---|
| count | 100.00000 | 100.000000 | 100.000000 | 100.000000 | 1.000000e+02 | 1.000000e+02 |
| mean | 55.54000 | 56726.630000 | 0.547292 | 0.566209 | 4.440892e-18 | 6.161738e-17 |
| std | 28.62203 | 28431.365442 | 0.298146 | 0.289042 | 1.000000e+00 | 1.000000e+00 |
| min | 3.00000 | 1032.000000 | 0.000000 | 0.000000 | -1.835649e+00 | -1.958915e+00 |
| 25% | 31.00000 | 33732.250000 | 0.291667 | 0.332441 | -8.573815e-01 | -8.087681e-01 |
| 50% | 59.50000 | 59819.500000 | 0.588542 | 0.597653 | 1.383550e-01 | 1.087837e-01 |
| 75% | 83.25000 | 80473.500000 | 0.835938 | 0.807628 | 9.681354e-01 | 8.352349e-01 |
| max | 99.00000 | 99396.000000 | 1.000000 | 1.000000 | 1.518411e+00 | 1.500785e+00 |
data.plot(kind="scatter",x="X_s",y="Y_s")
<Axes: xlabel='X_s', ylabel='Y_s'>
../DATA01/text_train/には学習者の作文が保存されています。../DATA02/eva_train.csvに保存されています。../DATA01/text_test/に保存されている作文を評価します。