SBクリエイティブ

機械学習のエッセンス

加藤公一:著者

実装しながら学ぶPython、数学、アルゴリズム

本書は具体的なデータ分析の手法を説明する意図で書かれたものではありません。
実用的な目的ならscikit-learnやChainerなどの既存のフレームワークを使うべきですが、本書では機械学習のいくつかの有名なアルゴリズムを、自分でゼロから実装することを目標としています。こうすることにより、とかくブラックボックスになりがちな機械学習の仕組みを理解し、さらなる応用力と問題解決力を身につけることができるようになります。
また、処理系にはデファクトスタンダードであるPythonを使い、機械学習に必要な数学の知識もわかりやすく解説しています。
これから機械学習を始める学生さんや、いきなりプロジェクトに放り込まれていまいち理解できないままデータ分析の仕事をしているエンジニアの方にも最適です。

■目次:
第01章 学習の前に
第02章 Pythonの基本
第03章 機械学習に必要な数学
第04章 Pythonによる数値計算とデータの可視化
第05章 機械学習のアルゴリズム

定価:3,080円(本体2,800円+10%税)

書籍情報

  • 発売日:2018年9月21日(金)
  • ISBN:978-4-7973-9396-5
  • サイズ:B5変
  • ページ数:384
  • 付録:-
Pythonのみを使ってゼロから実装する

本書は、ライブラリを使うだけでは満足できずその中身を理解したいという人に向けて書かれました。アルゴリズムの動作原理を示した上で、実装例で実験できるようにしています。まずは機械学習の分野でデファクトで使われているプログラミング言語であるPythonの説明をします。筆者の周りでは、機械学習の中身を理解しようとするときの一番のボトルネックが数学の知識であるという話をよく聞くので、数学的な解説も初歩的なところから説明するようにしました。

文字列のスライシング

文字列の長さ(文字数)の取得にはlen関数を使います。部分文字列を取得するには角括弧([と]、ブラケット)を使います。文字列sについて、s[i]はインデックスiにあたる文字を取り出します。s[i:j]はインデックスiからインデックスj-1までの部分文字列を取り出すことを意味します。インデックスは0から始まるので、例えばs[2]は3文字目を意味し、s[1:5]は2文字目から4文字目を意味します。

ベクトルの幾何的イメージ

ベクトルが2次元または3次元のときは、幾何的に可視化することができます。特に2次元の場合について考えると、ベクトルa=(a1,a2)tは始点が原点(0,0)にあり終点が点(a1,a2)にある矢印と同一視できます。同様に3次元の場合ベクトルb=(b1,b2,b3)tは元が(0,0,0)原点にあり先が点(b1,b2,b3)にある矢印と同一視できます。このことから「数字を並べたもの」であったベクトルに幾何的なイメージを持つことができます。

媒介変数表示

t がすべての実数値を取って変わるとき、このようなxに対応する点は与えられた直線l 上すべての点を通ることがわかります。このように直線上の点の位置ベクトルをパラメータt を使って表現したものを、直線のパラメータ表示(媒介変数表示)と呼びます。そしてaをこの直線の方向ベクトルと呼びます。

配列の基本計算

まずは配列の集計計算を見てみます。ここでは合計(sum)、平均(mean)、最大値(max)、最小値(min)を計算しています。sumの名前付き引数axisを指定すると行ごと、列ごとの合計をとることができます。b.sum(axis=0)とすると、行方向に和を計算し、つまり列ごとに合計を出します。このときの戻り値は合計のスカラーではなく配列であることに注意してください。

交差検証

過学習を防ぐ方法として交差検証(クロスバリデーション)というのがあります。k分割交差検証とはデータをk個に分割(端数以外はほぼ等分)して、そのk個のデータのうち1つをテスト用にして他を訓練用にします。例えば3分割交差検証ではデータを3つに分割しますが、それらをデータ1、データ2、データ3と呼ぶことにします。

著者紹介

関連商品のご案内

もっと見る

試し読み新着お届け

もっと見る