こんにちは、AI講師の三谷です。 今回は、AI(人工知能)を作るための機械学習アルゴリズムが満載の「Scikit-learn」と言うライブラリについて解説します。
AIや機械学習を学び始めた際によく出てくるとても便利なライブラリですので、是非チャレンジしてみてください。
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を学ぶ方法としては
- 書籍や動画で独学
- セミナーを受講する
というやり方が考えられると思います。
どれも重要な勉強法ですし、欠かすことはできません。
もし初心者がゼロから始めるなら、何よりもセミナー受講をおすすめします。
なぜなら、理解の度合いが格段に違ってくるからです。
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も同様にこれらの問題に合わせたアルゴリズム選択ができるようになっています。
例えば、SVMを使う場合は、
from sclearn inport 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の環境を作成する必要があります。
- windows上でも正しく動作する古いScikit-learnを使う
- 最新のscikit-learnを使い、問題のあるmklだけを強制的に入れ替える
- そもそも最新のscikit-learnを使って環境を構築する
おすすめは3番のやり方ですので、今回は最新のScikit-learnを用いて環境を構築してみます。
pip install scikit-learn
ただし、Scikit-learnは前処理には欠かせないPandas、数値計算用ライブラリのNumpy、科学技術計算向けのScipyに依存しているため、この3つのライブラリは必須でインストールする必要があります。
またインタラクティブな開発をするためにはグラフ描画用ライブラリのmatplotlibなどもインストールしておくことをおすすめします。
詳細のインストール方法は、下記記事にまとめましたので、こちらも合わせて参考にしてください。
参考記事:機械学習用ライブラリ「Scikit-learn」のインストール方法
Scikit-learnの使い方
Scikit-learnは、様々なアルゴリズムが含まれたライブラリですので、それぞれのアルゴリズムを呼び出して使用します。
ここでは、シンプルなコードを使用して概要をつかんでいただきます。
Scikit-learnを使ったプログラムは、基本的に以下の構成となっています。
- ライブラリのインポート
- 学習dataとtest-dataの用意
- アルゴリズムの指定と学習実行
- test-dataでテスト
- 必要に応じて精度などをビジュアライズ
AI初心者におすすめのセミナー
自分でAIのことを学ぼうにも
「AIの作り方が全く分からない!」
「AIの仕組みやプログラミングの基礎も知らないからどこから手をつけたらいいかわからない!」
なんて時もあると思います。
独学があまり好きじゃない、上手くいかないと言う人は手っ取り早くAIの講座を受けてしまうのもおすすめです!
AIは一見初心者向けの講座なんてなさそうですが、全くAIが分からない人でも受けれる講座があるんです!
私のイチオシのAI講座は、
- AIプログラミングの講座を受けたい場合 → AIエンジニアセミナー
- ノーコードでAIを作る講座を受けたい場合 → AIビジネス向け完全攻略セミナー
- AIの資格対策講座を受けたい場合 → E資格対策ディープラーニング短期集中講座
こちらの3つが主におすすめのAI講座になっています!
まず、先述でご紹介したように、AIエンジニアセミナーは、AIプログラミングを3ヶ月で習得できるAIエンジニア育成セミナーです。
いつでもどこでも学習できるパソコン、スマホ、タブレット対応のEラーニング学習となっており、学習期間の目安は3ヶ月、全12回の講座を動画で視聴しながら自分のペースでしっかり学習できます。
プログラミング手法、基礎AIの実装から応用AIの実装までを学び、ライブラリの使い方も学べるのでAIモデルが使えるようになります。
最終的には、高度なデータ処理をも学ぶことでAIプログラミングマスターを目指すカリキュラムです。
次に、AIビジネス向け完全攻略セミナーは、AIの仕組みや作り方、ビジネスでAIを活用する方法を1日で学ぶことができるセミナーです。
Scikit-learnの使い方まで学ぼうとは思わないけど、AIの仕組みや知識をざっくりつけてみたいという方にはベストなセミナーです。
また、1日のセミナーを通して自由にAIプロジェクトを進められるようになるため、AIプロジェクトのマネージャーにもおすすめのセミナーです!
そして、JDLA認定のE資格対策講座を受けたい場合におすすめなのが、AI研究所が開催しているE資格対策ディープラーニング短期集中講座です。
E資格試験の受験資格を得るためには、日本ディープラーニング協会(JDLA)が認定したプログラムの受講修了が必須となります。
日本ディープラーニング協会にて規定されている出題範囲を、すべてカバーしているセミナーなので、常に最新のE資格に完全対応しており、試験対策を中心に、E資格に合格するためのポイントを絞って学習できます。
本講座を修了することで、E資格の受験資格を短期間で確実に取得することができます。
どのセミナーも初心者向けで、AIが全く分からなくても受けられる講座とのことなので安心です。
しかも最後には資格が取れるほどの経験までさせてくれるので、初心者から成りあがるにはセミナーが一番手っ取り早いです。
この機会にセミナーを受講してみてはいかがでしょうか。
Scikit-learnについてまとめ
今回はScikit-learnについて詳しく解説しましたがいかがだったでしょうか。
ディープラーニングだけではなく、AI(人工知能)を活用するためには様々な機械学習を知っておくことが重要になってきます。
Scikit-learnは、そんな機械学習アルゴリズムが盛りだくさんで含まれたライブラリですので、避けては通れないものですね。
是非Scikit-learnで様々な機械学習アルゴリズムを試してみてください!
