機械学習5|pythonで乱数を作成し、機械学習に活かす

  • URLをコピーしました!

ここで学習すること

データセットを作成するための乱数作成の手法を学習します。

乱数を作成することでpythonの学習がスムーズに行えます。

乱数を作成する np.random.randn()

乱数を作成するにはnp.random.randn()の()内に作成する乱数の数を記入します。

import numpy as pd

X = np.random.randn(5)
print(“X:”, X)

Y = np.random.randn(5)
print(“Y:”, Y)
print()

=>

X: [-0.01886594 -0.50995452 -0.33290969 -0.27253745 0.14135954]
Y: [-0.18083659 -0.9227813 1.15190391 -0.95624888 0.46817611]

乱数を生成するため、計算する度に作成される数字は変わります。

毎回同じ乱数を作成する np.random.seed()

作成する数字を毎回同じにするにはnumpy.random.seed()の()内に同じ整数を記入します。

np.random.seed(0) # シードを設定
x = np.random.randn(5)
print(“x:”, x)

np.random.seed(1) # シードを設定
y = np.random.randn(5)
print(“y:”, y)

=>

x: [1.76405235 0.40015721 0.97873798 2.2408932 1.86755799]
y: [ 1.62434536 -0.61175641 -0.52817175 -1.07296862 0.86540763]

シードを設定することで、何度でも同じ乱数が得られます。

作成した乱数は正規分布します。正規分布とは下のグラフのように富士山のように中央値をピークに均等に分布することを言います。

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(0)        # シードを設定します
x = np.random.randn(10000)  #10000個の乱数を作成します
print(“x:”, x)

plt.hist(x, bins=’auto’) #作成した乱数を表示します
plt.show()

=>

x: [ 1.76405235 0.40015721 0.97873798 … 0.51687218 -0.03292069
1.29811143]

文字列型から数値型へ変換する

読み取ったデータが文字列型だった場合、数値型(int型、float型)へ変換しなければ計算できません。

データの型を変換するにはint()やfloat()の()内に変数を入れます。

x = ‘5’ #クォーテーション(’ ’)があるので、変数x,yは文字型(str型)になります。
y = ‘6’

z = int(x) + int(y)    #int型に変化してx+yを計算しています

w=x + y        #str型のままx+yを計算しています

print(z)
print(w)

=>

11 #int型に変換後に加算しているので11となります。

56 #str型のまま加算しているので文字列の連結になっています。

等間隔の数列を作成する numpy.arange(始まりの値, 終わりの値, 間隔の値)

numpy.arange(始まりの値, 終わりの値, 間隔の値)とすることで、等間隔の数列を作成できます。

終わりの値よりも1少ない数値が実際の終わりの値となります

import numpy as np

n = np.arange(2, 15, 3) #2から3間隔で14(15-1)までの数字を作成します。

print(n)

=>

[ 2 5 8 11 14]

数列を分割する numpy.linspace(最初の値,最後の値,分割点の個数)

numpy.linspace(最初の値,最後の値,分割点の個数)でデータを分割することが可能です。

import numpy as np

x = np.linspace(0, 10, 3) #0から10の範囲を3点で分割します
print(x)

=>

[ 0. 5. 10.]

よかったらシェアしてね!
  • URLをコピーしました!
目次