In [1]:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# matplotlibの表示をJupyter内で行うための「おまじない」
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
plt.plot(X, np.cos(X))
plt.plot(X, np.sin(X))
Out[1]:
In [2]:
plt.figure(figsize=(8,6), dpi=80) # リサイズ
plt.xlim(-np.pi, np.pi) # x軸方向の最大値,最小値を決める
plt.xticks( [-np.pi, -np.pi/2, 0, np.pi/2, np.pi])
plt.yticks([-1, 0, +1])
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
plt.plot(X, np.cos(X), color='blue', linewidth=2.0, linestyle='-', label='cos') # 線のスタイル,幅などを変更できる
plt.plot(X, np.sin(X), color='green', linewidth=2.0, linestyle=':', label='sin')
plt.legend(loc='upper left')
Out[2]:
In [3]:
import pandas as pd
name = pd.Series(['Mike', 'John', 'Ken', 'Maki', 'Lisa'], name='name') # RDBの1列
country = pd.Series(['USA', 'UK', 'Japan', 'China', 'USA'], name='country')
score = pd.Series([1, 3, 5, 4, 3], name='score')
df = pd.DataFrame({'name':name, 'country':country, 'score':score}) # RDB全体
df.head()
Out[3]:
describe関数を使うことで,DataFrame中の数値列の統計値が確認できる.
In [4]:
df.describe()
Out[4]:
列名を指定することで,その列のみ表示することができる.
(複数行の場合,列名のリストで指定する)
In [5]:
df[['country', 'score']]
Out[5]:
条件をつけてDataFrameの部分を取り出せる
In [6]:
df[df['score'] >= 3]
Out[6]:
In [7]:
!head ./data/sample.csv # csvの中身
ファイルパスを指定して,csvファイルをpandasのDataFrameにすることができる.
このサンプルデータにおいて,"五郎"の行は値が欠損している.
In [8]:
df = pd.read_csv('./data/sample.csv')
df.head()
Out[8]:
『集合知プログラミング』では,旅行コストの最適化問題を例題として解いている.
旅行に関わる様々なコストを定量化し,最小化する.
ランダムに探索する方法.
探索する空間の中でランダムに1点を決め,関数値を計算する.その関数値が最大(または最小)となる点を出力する.
ある点xで勾配を計算し,その方向に向かってΔx移動する.という手順を繰り返すことで,最適解を探索する方法.
ある確率で勾配方向とは逆に動くことを許容した方法.
初期状態に近いときほど,勾配方向とは反対に動くことができるが,繰り返しが進むにつれて,その確率が小さくなる.
選択,交配(交叉)と突然変異をもとにした,最適化アルゴリズム.