Scikit-learnとは?データ分析や機械学習に欠かせないScikit-learnのメリットや機能まとめ

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

Scikit-learnとは何?

Scikit-learnとは

Scikit-learnは、Pythonで使用できるオープンソースプロジェクトのライブラリ、またはフレームワークと呼ばれるものです。
読み方は「サイキットラーン」と読みます。
機械学習全般のアルゴリズムが実装されたライブラリなので、根強い人気を持っています。
“統計学・パターン認識・データ解析”の技法が豊富に使うことができるので、特に研究者の間で人気があります。

オープンソースですので、誰でも自由に利用したり再頒布でき、ソースコードを覗いてどんな計算が行われているかを確認することもできます。
Scikit-learnはかなり活発なユーザーコミュニティの中で開発・改良が加えられているため、ドキュメントも整備されているので初心者でもスムーズにScikit-learnを使い始めることができるようになっています。

Scikit-learnは、主に分類・回帰・クラスタリング・次元削減という4つの目的に応じて利用されます。
目的と状況に応じてアルゴリズムが決定されて、機械学習を進めていくことにはなりますが、大枠はこの4つになります。

Scikit-learnと他のライブラリとの違い

他のNumPyやmatplotlibとの違いは、様々な機械学習の実装をより簡単に試すことができるところにあります。
Scikit-learnの他には、Googleが提供している「TensorFlow」が有名です。 TensorFlowについては下記記事で紹介しています。

参考記事:TensorFlowとは?TensorFlowの概要や活用事例を徹底解説

Scikit-learnや、TensorFlowを使ったAIのプログラミング方法が学べるAIエンジニア育成講座はこちらです。

Scikit-learnを学ぶ方法

公式のチュートリアルがありますが、全て英語になってしまっています。
Google Chromeの自動翻訳機能で読めるようでしたらこちらを利用するのが一番早いです。

公式チュートリアル

公式チュートリアルでは、データの読み込み方から簡単な機械学習モデルを作ることができる内容となっています。
公式のユーザーガイドもあります。

公式ユーザーガイド

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

Scikit-learnの活用事例

Scikit-learnを使いこなせれば、株価の予想や未来予想もできてしまいます。
初心者でも動画を見ればすぐにScikit-learnについて理解することができるので、まずは下の動画でScikit-learnがどんなものかご覧ください。

動画なら「このようにScikit-learnを使うんだ」というのがすぐに理解できますね。

Scikit-learnを効率よく学ぶためにおすすめのセミナー

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

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

というやり方が考えられると思います。
どれも重要な勉強法ですし、欠かすことはできません。

もし初心者がゼロから始めるなら、何よりもセミナー受講をおすすめします。
なぜなら、理解の度合いが格段に違ってくるからです。
Scikit-learnに限らず機械学習全般に言えることですが、専門的な知識が必要ですし用語を聞いても初心者には理解しづらい事が多いのです。
受講費用はかかるかもしれませんが、結果的に独学で全部やるより低コストで済む場合も多いですね。

例えば、Scikit-learnのライブラリには様々なデータセットがあって、中には「糖尿病患者の診察データ」なんてものもあります。
この糖尿病患者のデータを「sklearn.datasets.load_diabetes」で呼び出して回帰分析することもできるのですが、そもそもPythonの知識が必要になりますし、初心者にとってはよくわからないことも多いのではないでしょうか。

そんな時、AI研究所のセミナーならAIの経験が豊富な講師陣が丁寧に解説してくれるので、圧倒的に他のセミナーと理解度が違います。
あらかじめセミナーでAIや機械学習を理解できていれば、その後独学で学ぶにも大きな助けとなってくれるはず。
AIエンジニア育成講座では、Scikit-learnの入門的なインストールから具体的な実装方法まで、丁寧に教えてくれます。
ぜひ受講を検討してみてください。

AIエンジニア育成講座の詳細はこちら

Scikit-learnの機能まとめ

それでは、Scikit-learnには一体どんな機能があるのかをまとめて紹介します。

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))

このような教師あり学習に使える機能がついています。

Scikit-learnの機能②教師なし学習

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

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

Scikit-learnの機能③モデル選択・モデル評価

Scikit-learnでは「モデル選択、モデル評価」も利用できます。

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

Scikit-learnの機能④データ変形

データ変形も、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)

Scikit-learnの機能⑤データセットの読み込み

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

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

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

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

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

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

参考記事:機械学習とは?機械学習の概要や種類について分かりやすく徹底解説!

チートシートが便利

Scikit-learnが持つ、たくさんの機械学習アルゴリズムのうち、どれを使えばいいか一覧でまとめてある表がチートシートです。
公式アルゴリズムチートシートは全て英語なので、簡単に訳したものを表にしてみました。

Scikit-learnアルゴリズムチートシート

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

from sklearn import SVM
clf = SVM .SVC(kernel='rbf', c=10)

などと書くだけで使うことができます。
使用するパラメータは任意で指定できます。

Scikit-learnやTensorFlowを使った、AIのプログラミング方法が学べるAIエンジニア育成講座はこちら

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

Pythonをインストールしてある環境だと、以下のpipインストールで簡単にインストールできます。
Scikit-learnの最新バージョンでは、MacでもWindowsでも問題なく動作します。

しかし、バージョン「mkl 2019.1」が含まれる組み合わせはMac上では問題ないのですが、Windows上ではmkl_intel_thread.dllに関するエラーが発生して動作しません。
Windows上でscikit-learnを利用するには、以下のどれかの方法でscikit-learnの環境を作成する必要があります。

  1. windows上でも正しく動作する古いScikit-learnを使う
  2. 最新のscikit-learnを使い、問題のあるmklだけを強制的に入れ替える
  3. そもそも最新のscikit-learnを使って環境を構築する

おすすめは3番のやり方ですので、今回は最新のScikit-learnを用いて環境を構築してみます。

pip install scikit-learn

ただし、Scikit-learnは前処理には欠かせないPandas、数値計算用ライブラリのNumpy、科学技術計算向けのScipyに依存しているため、この3つのライブラリは必須でインストールする必要があります。
またインタラクティブな開発をするためにはグラフ描画用ライブラリのmatplotlibなどもインストールしておくことをおすすめします。
詳細のインストール方法は、下記記事にまとめましたので、こちらも合わせて参考にしてください。

参考記事:機械学習用ライブラリ「Scikit-learn」のインストール方法

Scikit-learnの使い方

Scikit-learnの使い方

Scikit-learnは、様々なアルゴリズムが含まれたライブラリですので、それぞれのアルゴリズムを呼び出して使用します。
ここでは、シンプルなコードを使用して概要をつかんでいただきます。
Scikit-learnを使ったプログラムは、基本的に以下の構成となっています。

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

AIプログラミング初心者におすすめのセミナー

AIの普及により、プログラミングができるエンジニアは引っ張りだこと言えるでしょう。ここでは初心者でも高度な技能を学べるセミナーについてお伝えします。

「AIエンジニア育成講座」のメリット

AIプログラミングは専門的な知識が必須ですが、予期せぬバグなど様々なトラブルに対処できる高度な技能も欠かせません。
株式会社VOSTが手掛けている「AIエンジニア育成講座」は初心者からベテランまで、幅広い層に対応したセミナーです。
三日間の集中学習によってAIプログラミングに必要なスキルを習得できる点がおすすめと言えるでしょう。まったくの未経験者でも現場で即戦力になるだけの知識や技能を得られるので、これからAIの分野で働きたいと考える人や優れた人材を求める雇用主にとって最適なセミナーと言っても過言ではありません。
また、基本的な知識の復習もなることから、経験豊富なベテランのエンジニアにも向いています。セミナーの受講スケジュールや費用はホームページに記載されているので確認は容易です。

AIの専門知識に精通している有識者が特別顧問に就任していることから、質の高い講義を期待できるでしょう。セミナーに関する不明な点についてもホームページで確認が可能なので、受講を検討する際の参考になります。

「E資格対策講座」のメリット

E資格対策講座は、AIエンジニアとして良質な知識を持っていると証明できる「E資格」について学べるセミナー講座です。
E資格を持っているとAIエンジニアとしての就活や面接でのアピールもしやすいので、AIエンジニアのスキルを上げたいと思っているならぜひ検討してみてください。

Scikit-learnについてまとめ

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

Scikit-learnとは?データ分析や機械学習に欠かせないScikit-learnのメリットや機能まとめ
最新情報をチェックしよう!