機械学習入門
機械学習入門
機械学習と人工知能とは
ここ数年AI(Artifical Inteligence)という言葉が様々な箇所で現れるようになってきたが、そもそもAI/人工知能とはなんなのか
また、機械学習と人工知能は同じなのであろうか
人工知能という言葉を初めて使用したジョン・マッカーシーによると人工知能は以下の意味らしい
また、機械学習の定義として有名なのが計算機科学者 アーサー・サミュエルによるものらしい
機械学習は人工知能の部分集合という理解でいいらしい
人工知能において機械学習以外にもルールベースがある
- ルールベース:人間が記述したルールをもとに判断するAI
Pythonによる機械学習
Numpy
Numpyは配列データを高速に操作・計算することが得意なライブラリ
配列とは情報を記憶するための箱が複数が連なっているもの
基本的な操作
- 1次元配列を生成
array1 = np.array([0,1,2])
- 連番整数の1次元配列を生成 , ()内は要素の個数
array2 = np.arange(24)
- reshape()を用いて配列の構造を変更
#1次元配列を2次元に整形 array3 = array2.reshape(4,6)
- 配列の連結(行方向)
np.concatenate([array1,array2],axis=0)
- 配列の連結(列方向)
np.concatenate([array1,array2],axis=1)
- 配列の分割
np.split(array,3)
array.sum() #合計値 array.mean() #平均値 array.min() #最小値 array.max() #最大値
とりあえずこんな感じ
Pandas
pandasはテーブルデータの操作が得意なライブラリで集計、統計処理などの分析業務で頻出のデータ処理が簡単にできる
また機械学習モデルの設計においてデータの前処理、特徴量設計に用いられる
numpyで高速処理をするためにpandasで処理できる形に整形する
基本的な操作
- csvの読み込み
df = pd.read_csv('data.csv', sep=',')
- データの最初の数行を確認,()内に数字を入ればその行数表示できる
df.head() #()内が空欄だと5行
- データの最後の数行を確認
df.tail()
- 列を追加
df['列名']=[データ(カンマ区切り)]
- 列の削除
del df['列名']
- データを細かく表示
df.iloc[1:4] #2行目から4行目の前まで
- 一意の項目を取得する
df['列名'].unique()
- 欠損値を調べる
# 欠損値を含むか df.isnull().any() # 欠損値をどのくらい含むか df.isnull().sum()
- 欠損を含む行を抽出
df[df.isnull().any(axis=1)].head()
- 欠損地を置き換える
df.fillna(置き換える値)
- データの結合
結合df = 主df .join (従df ,on条件)