重要なお知らせ:新型コロナウイルス、インフルエンザ等の感染予防・拡散防止の対策についてこちらをご確認ください。

AI研究所 - AI(人工知能)に脅かされないために、AI(人工知能)を作る側の人間になる(AI人材育成・セミナー) -

  • お問い合わせ

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

公開日:2021.04.14 [最終更新日]2021.04.15

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

Scikit-learn

 

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

Scikit-learnとは何?

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

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

scikit-learnは、主に分類・回帰・クラスタリング・次元削減という4つの目的に応じて利用されます。
目的と状況に応じてアルゴリズムが決定されて、機械学習を進めていくことにはなりますが、大枠はこの4つになります。
他のNumPyやmatplotlibとの違いは、様々な機械学習の実装をより簡単に試すことができるところにあります。
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(略してclf)) – 教師あり学習。

例えば、SVMを使う場合。
from sclearn inport SVM
clf = SVM .SVC(kernel=’rbf’, c=10)
などと書くだけで使うことができます。
使用するパラメータは任意で指定できます。

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

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

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

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

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」のインストール方法.docx)にまとめましたので、御覧ください!

Scikit-learnの使い方

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

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

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

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

Scikit-learnの使い方

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

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

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

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

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の入門的なインストールから具体的な実装方法まで、丁寧に教えてくれます。
ぜひ受講を検討してみてください。

AIプログラミングをマスターする!!3日間集中AIプログラミングセミナー

Scikit-learnについてまとめ

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


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

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