マガジンのカバー画像

古典機械学習を学ぶ

14
線形回帰、ロジスティック回帰、正則化、決定木、サポートベクトルマシン、クラスタリング、次元削減などの機械学習の仕組みを解説していく予定です。
運営しているクリエイター

記事一覧

scikit-learn機械学習⑫決定木(Decision Tree)実践編

前回は、決定木(Decision Tree)の理論的な側面を解説しました。今回は、scikit-learnを使って実装と実験を行います。 データセットとしては、scikit-learn.datasets からアイリス(iris、アヤメ)を使用します。タスクは、このデータセットに含まれる花の特徴から花の種類を予測することです。ナイーブ・ベイズの実践編でも使ったので、結果を比較できます。 まずは、データセットを訓練用とテスト用に分割します。次に、訓練用のデータセットから決定木

scikit-learn機械学習⑪決定木(Decision Tree)

前回は、ナイーブ・ベイズを実装しました。今回は、決定木(Decision Tree)を解説します。 決定木は、データセットを分割し、木構造を作ります。下図は、アイリス(Iris)のデータセットを使用して訓練された決定木モデルの可視化です。scikit-learnで生成することが出来ます。 詳細は記事の中で解説しますが、この決定木モデルは、花の特徴(花弁とがく片の長さと幅)に基づいて、アイリスの3種類(Setosa、Versicolor、Virginica)に分類しています

scikit-learn機械学習⑩ナイーブ・ベイズ実践編

前回は、ナイーブ・ベイズの理論的な側面を解説しました。今回は、この理論を実際のコードに落とし込んで、具体的なデータ分析を行います。 データセットとしては、scikit-learn.datasets からアイリス(iris、アヤメ)を使用します。このデータセットに含まれる花の特徴から花の種類を予測するタスクは、統計的手法を用いるナイーブ・ベイズを試すのにピッタリです。 まずは、探索的なデータ分析を行い、学習とテストのためにデータに前処理を施します。そして、訓練を行った後に評

scikit-learn機械学習⑨ナイーブ・ベイズ

前回は、グリッド・サーチと交差検証を紹介しました。今回は、ナイーブ・ベイズ(Naive Bayes)の解説をします。単純ベイズとも呼ばれるモデルです。 割と直感的に理解しやすいアルゴリズムですが、ベイズ定理という確率論に基づいた分類器です。そこには、「ナイーブ」な仮定が含まれています。ところで、何が「ナイーブ」で、それが「ナイーブ」だとどのような効用があるのでしょうか。 この記事では、この辺を詳しく解説します。

scikit-learn機械学習⑧グリッド・サーチと交差検証

前回は、ロジスティック回帰を使ってL1・L2正則化を実装しました。今回は、ロジスティック回帰を使ってグリッド・サーチ(Grid Search)を行います。これらのテクニックはロジスティック回帰に限ったものではないので、知っておくと今後に登場するモデルでも役に立ちます。 グリッド・サーチは、機械学習モデルのハイパーパラメータを最適化するための一般的な手法です。この方法では、各ハイパーパラメータに対して候補となる値のリストを指定します。ハイパーパラメータが複数ある場合、全ての値

scikit-learn機械学習⑦L1・L2正則化

前回は、ロジスティック回帰を実装しました。もっと以前には、線形回帰を実装しました。 両方のモデルに共通するのは、一つまたは複数の独立変数(特徴量)と、それらに依存する従属変数(目的変数、ラベル)との関係をモデリングすることにあります。その際に、特定の特徴が目的変数に与える影響の大きさがモデルの重み(傾き)によって表現されていました。 特に前回行ったようなデータの正規化を行なっている場合は、データの分散はどれも同じようになるので、各特徴量に対する重みがその特徴量の重要度を反

scikit-learn機械学習⑥ロジスティック回帰:実践編

前回は、ロジスティック回帰の理論的な側面を解説しました。今回は、scikit-learnを使ってロジスティック回帰を実装してみます。 今回は、scikit-learnの乳癌のデータセットを扱います。目的は、各患者に対して30個ある数値の入力データからその人が悪性の癌を患っているのかどうかを予測することです。つまり、ロジスティック回帰を使って悪性のガンである確率を予測します。 いつものように訓練用とテスト用にデータを分け、訓練用のデータで簡単な分析を行います。さらに、モデル

scikit-learn機械学習⑤ロジスティック回帰:理論編

ロジスティック回帰は、簡単に言うと「YesかNo」の判断を下すためのツールです。つまり、二択の結果を予測する問題に対して使われます。 例えば、以下のような問題が考えられます。 メールがスパムか否か 病気の診断結果が陽性か陰性か 顧客が商品を購入するかしないか これらは全て、Yes/Noで答えられる質問です。このような問題を二項分類(Binary Classification)と呼びます。 モデルとして考えると、ロジスティック回帰は入力された複数の独立変数を使って、

scikit-learn機械学習④多変量線形回帰:実践編

今回は、複数の変数から値を予測する多変量線形回帰をscikit-learn を使って実装します。 データセットとしてカルフォルニアの住宅の値段に関する california_housing を使います。これは、scikit-learn に付属するもので手軽に使えるので便利です。このデータには、家の値段とその家の属性に関するデータが入っています。 例えば、築年数や部屋数などの属性が含まれており、これら複数の変数から家の値段を予測することを考えます。仮に、築年数と部屋数だけで

scikit-learn機械学習③単純線形回帰:実践編

今回は単純線形回帰をscikit-learnを使って実装します。 scikit-learnは機械学習を行うためのオープンソースのPythonライブラリです。分類、回帰、クラスタリング、次元削減など多様な機械学習タスクをサポートします。 また、豊富な機械学習アルゴリズムだけでなく、データ前処理、モデルのトレーニング、評価、パイプラインの構築など便利な機能が含まれています。 これらの機能は、NumPy、SciPy、Matplotlibなどの他のPython科学計算ライブラリ

scikit-learn機械学習②線形回帰:理論編

線形回帰は、観測値などのデータの集まりから関係を見つけ出し、その関係を用いて新しいデータの値を予測する統計的な手法です。線形回帰では、データが直線上に近似的に配置されるような関係を探します。 例えば、以下のデータ点の集まりを見て$${x}$$と$${y}$$の間には直線的な関係があるのがわかります。 しかし、このような関係を説明できる直線はたくさんあるようにも見えます。 そこで、データを直線的な関係で最もよく説明するためのモデルが線形回帰モデルとなります。なお、線形回帰

scikit-learn機械学習①イントロダクション

この記事からscikit-learnで機械学習を学ぶシリーズを始めます。 このシリーズでは、主にニューラルネットワーク以外の機械学習アルゴリズムの紹介をしていく予定です。ディープラーニングにより関心がある方は、「PyTorchで始める深層学習」シリーズを参照してください。 今回は、機械学習の概要を紹介します。 機械が学習するとはトム・ミッチェルが書いた機械学習の本では、コンピュータ・プログラム(機械)が学習することを次のように定義しています。 つまり、学習しているかど

なぜAccuracyだけではダメなのか?PrecisionとRecallの違いを説明します

この記事で学ぶこと今回は、正解率(Accuracy)だけでは不足な状況について簡単な例を使って解説します。 目の前に卵が100個あったとします。ほんとうは全部が生の卵のはずですが、手違いでゆで卵が混ざってしまいました。 なので、手触りだけでゆで卵を言い当てたいとします。 この際、ゆで卵をポジティブ(Positive)と呼び、生の卵をネガティブ(Negative)と呼びます。 予測の正確さを測るために、Accuracy以外にもPrecision(適合率)やRecall(

「教師あり学習」はもう古い?正解データを自動生成できる「自己教師あり学習」を解説します

この記事で学ぶことここ数年、人工知能において以前は鉄板だった「教師あり学習」から「教師なし学習」への大きな流れが見受けられます。特にトランスフォーマーを利用した事前学習を行うBERTなどの影響が大きいですが、そのほかにもGeoffrey HintonらによるContrastive Learningによる事前学習なども注目されています。 今回は、これらの事前学習に共通する手法で「教師なし学習」だけど正解データを使う「自己教師あり学習」について解説します。 教師なし学習教師な