AI研究所 - AI(人工知能)に脅かされないために、AI(人工知能)を作る側の人間になる -

HOME  >  Scikit-learnとは?5分で分かるScikit-learnのメリットや機能まとめ

公開日:2020.07.28 [最終更新日]2020.08.07

Scikit-learnとは?5分で分かるScikit-learnのメリットや機能まとめ

Scikit-learn

 

こんにちは、AI講師の三谷です。
今回は、AI(人工知能)を作るための機械学習アルゴリズムが満載の”Scikit-learn”と言うライブラリについて解説します。
AIや機械学習を学び始めた際によく出てくるとても便利なライブラリですので、是非チャレンジしてみてください。

Scikit-learnとは何?

Scikit-learnは、Pythonで使用できるオープンソースプロジェクトのライブラリです。読み方は、「サイキットラーン」です。
オープンソースですので、誰でも自由に利用したり再頒布でき、ソースコードを覗いてどんな計算が行われているかを確認することもできます。
Scikit-learnはかなり活発なユーザーコミュニティの中で開発・改良が加えられているため、ドキュメントも整備されているので初心者でもスムーズにScikit-learnを使い始めることができるようになっています。
Scikit-learnの他には、Googleが提供している「TensorFlow」が有名です。

TensorFlowとは?TensorFlowを徹底解説してまとめました

Scikit-learnの機能まとめ

それではそのScikit-learnでは何ができるのか、機能をまとめてご紹介します。

教師あり学習

教師あり学習

教師あり学習、と言う学習方法を利用できます。

・線形回帰(Generalized Linear Models)
・線形判別分析(Linear and Quadratic Discriminant Analysis)
・リッジ回帰(Kernel ridge regression)
・SVM(Support Vector Machines)
・SGD(Stochastic Gradient Descent)
・最近傍・k近傍法(Nearest Neighbors)
・ガウス過程(Gaussian Processes)
・十字型分解(Cross decomposition)
・ナイーブベイズ(Naive Bayes)
・決定木(Decision Trees)
・アンサンブル学習(Ensemble methods)
・マルチクラス・マルチラベルアルゴリズム(Multiclass and multilabel algorithms)
・特徴量選択(Feature selection)
・半教師あり学習(Semi-Supervised)
・アイソトニック回帰(Isotonic regression)
・キャリブレーション(Probability calibration)
・ニューラルネットワークモデル(Neural network models (supervised))

具体的には上記のような機能がついています。

教師なし学習

また反対に教師なし学習も下記のような機能が利用できます。

・混合ガウスモデル(Gaussian mixture models)
・多様体学習(Manifold learning)
・クラスタリング(Clustering)
・バイクラスタリング(Biclustering)
・主成分分析(Principal component analysis)
・共分散推定(Covariance estimation)
・異常検知(Novelty and Outlier Detection)
・密度推定(Density Estimation)
・ニューラルネットワークモデル(Neural network models (unsupervised))

モデル選択・モデル評価

モデル選択、モデル評価も利用できます。

・交差検証(Cross-validation)
・ハイパーパラメーターチューニング(Tuning the hyper-parameters of an estimator)
・モデル評価(Model evaluation)
・モデル永続性(Model persistence)
・検証曲線(Validation curves)

データ変形

データ変形

データ変形もScikit-learnの機能に備わっています。

・パイプラインと複合評価(Pipelines and composite estimators)
・特徴抽出(Feature extraction)
・データ前処理(Preprocessing data)
・欠損値の補完(Imputation of missing values)
・教師なし次元削減(Unsupervised dimensionality reduction)
・ランダムプロジェクション(Random Projection)
・カーネル近似(Kernel Approximation)
・ペアワイズメトリック、類似性とカーネル(Pairwise metrics, Affinities and Kernels)
・ターゲット予測変換(Transforming the prediction target)

データセットの読み込み

もちろんデータセットの読み込みも可能です。

・一般データセットAPI(General dataset API)
・トイデータセット(Toy datasets)
・リアルワールドデータセット(Real world datasets)
・生成データセット(Generated datasets)
・他のデータセットの読み込み(Loading other datasets)

Scikit-learnを導入するメリットとは?

Scikit-learnを導入するメリットとは?

それではAIや機械学習、Pythonを使用するにおいて何故Scikit-learnを選ぶのかを解説していきます。

ディープラーニング以外の機械学習アルゴリズムが使える

ディープラーニングが注目されていますが、ディープラーニングが万能であるとは言えません。

用意したデータの数が少ない場合や、解決したい問題によっては、ディープラーニング以外の機械学習アルゴリズムのほうが適している場合があります。
Scikit-learnにはこれらの機械学習アルゴリズムが多く実装されているため、様々なアルゴリズムを使用したAI(人工知能)を作成できます。

機械学習とは!?機械学習の概要や種類について徹底解説!

チートシートが便利

Scikit-learnが持つたくさんの機械学習アルゴリズムのうち、どれを使えばいいか、一覧でまとめてある表がチートシートです。

チートシートが便利

機械学習では、主にクラス分類・回帰・クラスタリング・次元削減等の問題を解くことが多いですので、Scikit-learnも同様にこれらの問題に合わせたアルゴリズム選択ができるようになっています。
・クラス分類 (Classification) – 教師あり学習。

人が正解ラベル(クラス)をつけたデータを学習し、新しい入力データに対してのクラスを予測する問題です。
・回帰 (Regression) – 教師あり学習。

人が正解ラベル(実数値)をつけたデータを学習して、新しい入力データに対しての実数値を予測する問題です。
・クラスタリング (Clustering) – 教師なし学習。

入力データを任意の数のクラスター(グループ)にまとめて、近しいデータを発見する問題です。
・次元削減 (Dimensionality reduction) – データの次元を削減して、要因分析をしたり、機械学習のための前処理を行なう事ができます。

Scikit-learnを無料でインストールする方法

Scikit-learnを無料でインストールする方法

Pythonをインストールしてある環境だと、以下のpipインストールで簡単にインストールできます。

pip install scikit-learn

ただし、Scikit-learnは数値計算用ライブラリのNumpyや、科学技術計算向けのScipyに依存しているため、この2つのライブラリは必須でインストールする必要があります。
また、 インタラクティブな開発をするためにはグラフ描画用ライブラリのmatplotlibなどもインストールしておくことをおすすめします。

詳細のインストール方法はこちら(機械学習用ライブラリ「Scikit-learn」のインストール方法.docx)にまとめましたので、御覧ください!

Scikit-learnの使い方

Scikit-learnは、様々なアルゴリズムが含まれたライブラリですので、それぞれのアルゴリズムを呼び出して使用します。

ここでは、シンプルなコードを使用して概要をつかんでいただきます。

Scikit-learnを使ったプログラムは基本的に以下の構成となっています。

1. ライブラリのインポート
2. 学習データとテストデータの用意
3. アルゴリズムの指定と学習実行
4. テストデータでテスト
5. 必要に応じて精度などをビジュアライズ

Scikit-learnをより詳しく学ぶ方法

公式チュートリアル
公式チュートリアル

データの読み込み方から簡単な機械学習モデルを作ることができる内容となっています。

公式ユーザーガイド
公式ユーザーガイド

Scikit-learnで実装できる機械学習アルゴリズムの一覧を確認することができます。

セミナー受講で独学の効率をあげよう

セミナー受講で独学の効率をあげよう

公式チュートリアルやユーザーページを参照する他にScikit-learnを学ぶときに取りうる方法としては

  1. 書籍や動画で独学
  2. セミナーを受講する

というやり方が考えられると思います。
どれも重要な勉強法だし、欠かすことはできません。
もし初心者がゼロから始めるならまず何よりも、「2.セミナーを受講」することをおすすめします。
なぜなら、理解の度合いが格段に違ってくるから。
Scikit-learnに限らず機械学習全般に言えることですが、専門的な知識が必要ですし用語を聞いても初心者には理解しづらい事が多いのです。
例えばScikit-learnのライブラリには様々なデータセットがあって、中には「糖尿病患者の診察データ」なんてものもあります。
この糖尿病患者のデータを「sklearn.datasets.load_diabetes」で呼び出して回帰分析することもできるのですが、そもそもpythonの知識が必要になりますし初心者にとってはよくわからないことも多いのではないでしょうか。
最初はもちろんScikit-learnインストールやバージョン確認などの細かい作業もありますからね。
AI研究所のセミナーは経験豊富で説明のスペシャリストたる講師陣が丁寧に解説してくれるので、圧倒的に頭に入ってきます。
あらかじめセミナーでAIや機械学習を理解できていれば、その後独学で学ぶにも大きな助けとなってくれるはず。
AIエンジニアになるための3日間セミナーでは、Scikit-learnの入門的なインストールから具体的な実装方法まで、丁寧に教えてくれます。
ぜひ受講を検討してみてください。

Scikit-learnについてまとめ

いかがだったでしょうか?ディープラーニングだけではなく、AI(人工知能)を活用するためには様々な機械学習を知っておくことが重要になってきます。Scikit-learnはそんな機械学習アルゴリズムが盛りだくさんで含まれたライブラリですので、避けては通れないものですね。
是非Scikit-learnで様々な機械学習アルゴリズムを試してみてください!


参考になったら「いいね!」と「シェア」をお願いします!!

このエントリーをはてなブックマークに追加
AI(人工知能)セミナー開催中