カテゴリー
キーワード

Pythonの代表的な機械学習のオープンソースライブラリ『scikit-learn(サイキットラーン)』とは?

         

機械学習、と聞くとかなり複雑な数式をイメージして思わず身構えてしまう方もいるかと思いますが、実際には、あらかじめ誰かが複雑な数式を使って組み合わせてくれた「パッケージ」のようなものを組み合わせるだけで簡単に使用できる機械学習ツールも存在します。

Pythonの代表的な機械学習のオープンソースライブラリであるscikit-learn(サイキットラーン、と読みます)はその一つです。

今回の記事では、

  • scikit-learnとは何か
  • scikit-learnでできること

についてご紹介していきたいと思います!

scikit-learnとは

scikit-learnは「サイキット・ラーン」と読み「Pythonの代表的な機械学習のオープンソースライブラリ」です。

もともとのscikit-learnプロジェクトはグーグル・サマー・オブ・コード・プロジェクトscikits.learnとしてデイビット・クルナポ(David Cournapeau)氏によって開始されました。特に2015年以降は頻繁に活用されていて、Evernoteなどでも活用されています。

オープンソースで公開されているので、個人、商用に限らず誰でも無料で利用することができます

Pythonとは


そもそもPythonとは、という方もいらっしゃるかと思うので簡単に説明すると、Pythonは、汎用のプログラミング言語で、

  1. コードがシンプルで扱いやすく設計されている
  2. C言語などに比べて、可読性の高いプログラムが書ける
  3. 少ないコード行数で書ける
  4. ライブラリが豊富

という特徴があります。詳しくはこちらのサイトで丁寧に説明されていますので、興味のある方はそちらをどうぞ!

機械学習のライブラリとは?


では、機械学習のライブラリとはどのようなものでしょうか?

ライブラリとは、よく使われれる複数のプログラムを再利用できるようにひとまとめにしたものです。ただし、ライブラリだけではプログラムとして作動することはありません。

一般的には、作動するプログラムに何らかの機能を提供するコードの集まりをライブラリと呼びます。scikit-learnは凡庸性の高いプログラミング言語「Python」で頻繁に使われるコードをすぐに引き出せる「機械学習のライブラリ」です。

scikit-learnは現在でも活発に開発が行われているため、インターネット上での情報収集も比較的簡単で、サンプルデータなども数多く存在しています。

他にも

  • どのアルゴリズムでも同じような書き方で利用が可能
  • インストールしてすぐ機械学習を試すことができる

という特徴があります。

探しやすく、同じような書き方ででき、すぐに試すことができることから、機械学習を始めたばかりの人に最適なライブラリと言われているようです。

機械学習の分野において、Pythonが他言語よりも活用されている理由として、Pythonが機械学習にもっとも適していた、というよりも、数値計算ライブラリが充実していたという側面があげられます。また文法がシンプルで読みやすいため、プログラミング初心者が最初に勉強する言語として適していた、という理由も普及した理由と言えます。

scikit-learnを使うには

scikit-learnを使うには、Anacondaなどの開発環境のパッケージを使うのが一般的と言われています。

Anacondaという開発環境パッケージを導入すれば、すぐにscikit-learnを利用することが可能となります。とはいえ、Anacondaなどの開発環境は必須ではなく、手動でscikit-learnをインストールすれば使うことができます。

scikit-learnの主な機能

scikit-learnを使いこなすためのガイドとして、主な機能がわかりやすく分類されているアルゴリズムチートシートというのがあります。これはスタートから始まり、データの数やカテゴリー、ラベルありなし、データの数が10万件以上など、条件に沿って辿っていくと、どの機能を使うべきかを教えてくれる、というガイドラインシートです。

scikit-learnを使った機械学習を行う際に、やりたいことを実現させるための手順がわかりやすく4つのカテゴリーに分類されています。

その4つのカテゴリーとは下記の通りです。

  • 分類(classification)
  • 回帰(regression)
  • 次元圧縮(dimensionality reduction)
  • クラスタリング(clustering)

これに推薦(Recommendation)が追加される場合もあります。それぞれのカテゴリーにどのような機能があるのか一部ご紹介します。

分類(classification)


与えられたデータを分類します。このカテゴリー内にある主な分類方法の説明は下記の通りです。

・SGD(stochastic gradient descent、確率的勾配降下法)

大規模なデータ(10万件以上)に対し、そこそこの解答がすぐに欲しい場合などによく使われる線形のクラス分類手法です。

・カーネル近似

SGDではうまく分類できない場合に利用する非線形なクラス分類手法で、こちらも大規模データ向けです。

・Linear SVC

中小規模(10万件未満)に使われている線型の分類手法です。

・k近傍法

Linear SVCではうまく分類できない場合に利用します。これも10万件以下の中小規模データ向けです。

回帰(regression)


与えられたデータをもとに、目的とする値を予測するものです。このカテゴリー内にある主な予測方法の説明は下記の通りです。

・SGD(stochastic gradient descent、確率的勾配降下法)

前述の通り、大規模なデータ(10万件以上)に対し、そこそこの精度の予測がすぐに欲しい場合などによく使われます。

・LASSO、ElasticNet

中小規模(10万件未満)で、説明変数の一部が重要な場合におすすめな分析手法と言われています。

・Ridge、Liner SVR

中小規模(10万件未満)で、説明変数の全てが重要な場合におすすめな、分析手法と言われています。

・SVR(ガウスカーネル)、Ensemble

Ridge、またはLinerSVRではうまく分析できない場合に利用する分析手法です。

次元圧縮


データの特徴の次元数が多すぎると可視化できないため、2次元まで次元を圧縮します。次元圧縮にも複数のやり方があります。

・PCA (主成分分析・線形アルゴリズム)

PCAはPrincipal Component Analysisの略で、主成分分析と訳されます。この手法では、データの特徴に重みをつけた上で結合し、少数の新たな軸の特徴を作り出します。その結果、データ全体の特徴を捉えつつ、次元を削減することができる、という線形アルゴリズムです。

他にも

・NMF
・KernelPCA (非線形アルゴリズム)
・Isomap(非線形アルゴリズム)

などのアルゴリズムがあります。詳しく知りたい方はこちらの記事を参考にしてみてください。

クラスタリング(clustering)


クラスタリングでは特徴ベクトルだけに基づいてデータをグループ分けします。

  • KMeans
  • スペクトラルクラスタリング
  • GMM
  • MeanShift
  • VBGMM

などのアルゴリズムがあります。クラスタリングについて詳しく知りたい方はこちらの記事を参考にしてみてください。

終わりに

今回の記事では、scikit-learn(サイキットラーン)について簡単に紹介してきました。

scikit-learnに限らず、オープンソースライブラリというとてもありがたい仕組みはかなり活性化してきています。言ってみれば世界規模でのギブアンドテイクのシステムなので、これをうまく活用することで、実用化するまでの時間を短縮するだけでなく、専門家レベルの知識がなくても機械学習を実用的に活用することを可能にしてくれます。

つまり、何事もわからないから手も足もでない、というのは言ってしまえば一昔前の話です!今の時代、やりたい、と思うことがあれば、大抵のことはインターネット回線とグーグル検索と多くのやる気と少しの勇気とそれなりの時間さえあれば実現できる、はずです。

そして、さだまさし曰く、「元気と勇気は使えば使うほど増える」ものです!機械学習やPythonに興味が湧いてきた方は、令和の始まりに、Pythonのお勉強を始めてみてはいかがでしょうか?

参考URL:
・機械学習のライブラリ!scikit-learnとは【初心者向け】|TechAcademy magazine
・【機械学習初心者向け】scikit-learn「アルゴリズム・チートシート」の全手法を実装・解説してみた | Qiita

(桑折和宗)

 
×

メルマガ登録をしていただくと、記事やイベントなどの最新情報をお届けいたします。


データ活用 Data utilization テクノロジー technology 社会 society ビジネス business ライフ life 特集 Special feature

関連記事Related article

書評記事Book-review

データのじかん公式InstagramInstagram

データのじかん公式Instagram

30秒で理解!インフォグラフィックや動画で解説!フォローして『1日1記事』インプットしよう!

おすすめ記事Recommended articles

掲載特集

デジタル・DX・データにまつわる4コマ劇場『タイムくん』 デジタル・DX・データにまつわる4コマ劇場『タイムくん』 データのじかんをもっと詳しくデータのじかんフィーチャーズ データのじかんをもっと詳しく データのじかんフィーチャーズ 「47都道府県47色のDXの在り方」を訪ねる『Local DX Lab』 「47都道府県47色のDXの在り方」を訪ねる『Local DX Lab』 DXの1次情報をを世界から『World DX Journal』 DXの1次情報をを世界から 『World DX Journal』 データで越境するあなたへおすすめの『ブックレビュー』 データで越境するあなたへおすすめの 『ブックレビュー』 BIツールユーザーによる、BIツールユーザーのための、BIツールのトリセツ BIツールユーザーによる、BIツールユーザーのための、BIツールのトリセツ CIOの履歴書 by 一般社団法人CIOシェアリング協議会 CIOの履歴書 by 一般社団法人CIOシェアリング協議会 なぜ、日本企業のIT化が進まないのか――日本のSI構造から考える なぜ、日本企業のIT化が進まないのか――日本のSI構造から考える 日本ビジネスの血流である帳票のトレンドを徹底解説 日本ビジネスの血流である帳票のトレンドを徹底解説 データを武器にした課題解決家「柏木吉基」のあなたの組織がデータを活かせていないワケ データを武器にした課題解決家「柏木吉基」のあなたの組織がデータを活かせていないワケ BI(ビジネスインテリジェンス)のトリセツ BI(ビジネスインテリジェンス)のトリセツ 入社1年目に知っておきたい差が付くKPIマネジメント 入社1年目に知っておきたい 差が付くKPIマネジメント CIOLounge矢島氏が紐解くトップランナーたちのDXの“ホンネ” CIOLounge矢島氏が紐解く トップランナーたちのDXの“ホンネ” データのじかん Resources越境者のためのお役立ち資料集 データのじかん Resources 越境者のためのお役立ち資料集 AI実装の現在地点-トップITベンダーの捉え方 AI実装の現在地点-トップITベンダーの捉え方 データでビジネス、ライフを変える、面白くするDATA LOVERS データでビジネス、ライフを変える、 面白くするDATA LOVERS データマネジメント・ラジオ by データ横丁 データマネジメント・ラジオ by データ横丁 データのじかんNews データのじかんNews データ・情報は生もの!『DX Namamono information』 データ・情報は生もの! 『DX Namamono information』 ちょびっとラビット耳よりラピッドニュース ちょびっとラビット耳よりラピッドニュース AI事務員宮西さん(データ組織立ち上げ編) AI事務員宮西さん(データ組織立ち上げ編) 藤谷先生と一緒に学ぶ、DXリーダーのための危機管理入門 藤谷先生と一緒に学ぶ、DXリーダーのための危機管理入門 生情報取材班AI時代に逆行?ヒトが体感した「生情報」のみをお届け! 生情報取材班AI時代に逆行?ヒトが体感した「生情報」のみをお届け! データはともだち 〜怖くないよ!by UpdataTV Original データはともだち 〜怖くないよ!by UpdataTV Original データ飯店〜データに携わるモノたちの2.5thプレイス by UpdataTV〜 データ飯店〜データに携わるモノたちの2.5thプレイス by UpdataTV〜 インサイトーク〜データで世界を覗いてみたら〜by WingArc1st + IDEATECH インサイトーク〜データで世界を覗いてみたら〜by WingArc1st + IDEATECH
close close