ざっくりわかる「機械学習」---第5回 プログラミング言語「Python」が機械学習に向いている理由 | 第一線で活躍するオープンソースエキスパートが綴るスペシャルコラム。

ざっくりわかる「機械学習」---第5回 プログラミング言語「Python」が機械学習に向いている理由

ざっくりわかる「機械学習」シリーズ。第5回は『プログラミング言語「Python」が機械学習に向いている理由』です。

[2016年12月21日 ]

ざっくりわかる「機械学習」シリーズ。
→目次ページ

第5回は『プログラミング言語「Python」が機械学習に向いている理由』です。

プログラミング言語「Python」は、主要な機械学習向け言語です。「なぜPythonが機械学習に向いているのか?」について紹介します。

Pythonとは

概要

Pythonの概要については、こちらを参照ください。
→OSS×Cloud News →Pythonとは

主な特徴

・汎用高水準プログラミング言語
・シンプルで可読性に優れている
・大規模な標準ライブラリを提供
 →フレームワークのように使える

Pythonが機械学習に向いている理由

Pythonは「理工学系/統計解析系/科学演算系/機械学習向けのライブラリが充実」していることにより、機械学習でのメインとなるプログラミング言語として利用されています。

Pythonの機械学習向けライブラリ(ツール)

Pythonで機械学習プログラミングを行う場合に使える主なライブラリ(ツール)を紹介します。

非常に多くのライブラリ(ツール)が用意されていますが、特に人気が高いライブラリについて紹介します。

大規模データ処理ライブラリ「Pandas」

Pandasは、高速に大規模データを処理できるライブラリです。機械学習処理においては、主に、前処理工程で使用されます。

ポイント
・各種データフォーマットを高速に読み込む
・高速なデータ加工
・SQLライクに処理できる
・高速Group-byエンジンで集合関数を使える

数値計算ライブラリ「Numpy」+「Scipy」

「Numpy」のポイント
・数値計算の基盤機能
・「配列」「ベクトル」「行列」「線形代数」「数学関数」などの各種計算機能

「Scipy」のポイント
・科学技術計算で必要となる機能
・「疎行列」「積分」「補間」「統計処理」「フーリエ変換」「信号処理」「数値最適化」「線形代数」「確率統計」などの各種計算機能

自然言語処理ライブラリ「Gensim」

テキスト処理のツールを提供します。トピックモデルに特化している点が特徴です。
・TF-IDF(Term Frequency-Inverse Document Frequency)
・LSA(Latent Semantic Analysis)
・LDA(Linear Discriminant Analysis)
・word2vec など

描画ライブラリ「Matplotlib」

「Matplotlib」はグラフ描画のためのライブラリです。

「散布図」「ヒストグラム」「折れ線グラフ」「棒グラフ」「円グラフ」などの各種グラフを描きます。3次元グラフも描けます。

Pythonの機械学習ライブラリ

Pythonのライブラリとして使える主要な機械学習ライブラリです。

機械学習ライブラリ「Scikit-learn」

「Scikit-learn」は、Pythonの標準的な機械学習ライブラリです。

主要な機械学習アルゴリズムが実装されています。「教師あり学習」「教師なし学習」を手軽に試せます。

ディープラーニング用ライブラリ「TensorFlow」

「TensorFlow」は、Googleが開発したディープラーニング用ライブラリです。
→OSS×Cloud News →TensorFlowとは

ディープラーニング用ライブラリ「Caffe」

「Caffe」は代表的なPython向けディープラーニングライブラリです。
→OSS×Cloud News →Caffeとは

ディープラーニング用ライブラリ「Theano」

「Theano」は、ディープラーニング機能の他に、「行列演算」「自動微分」「実行時Cコード生成コンパイル」「GPU処理」などの機能も搭載しています。

ざっくりわかる「機械学習」シリーズ。
→目次ページへ

OSSNEWSに広告を掲載しませんか?

著者プロフィール

オープンソース活用研究所 所長 寺田雄一

1993年、株式会社野村総合研究所(NRI)入社。
インフラ系エンジニア、ITアーキテクトとして、証券会社基幹系システム、証券オンライントレードシステム、損保代理店システム、大手流通業基幹系システムなど、大規模システムのアーキテクチャ設計、基盤構築に従事。
2003年、NRI社内に、オープンソースの専門組織の設立を企画、10月に日本初となるオープンソース・ソリューションセンター設立。
2006年、社内ベンチャー制度にて、オープンソース・ワンストップサービス 「OpenStandia(オープンスタンディア)」事業を開始。オープンソースを活用した、企業情報ポータル、情報分析、シングルサインオン、統合ID管理、ドキュメント管理、統合業務システム(ERP)などの事業を次々と展開。
オープンソースビジネス推進協議会(OBCI),OpenAMコンソーシアムなどの業界団体も設立。同会の理事、会長や、NPO法人日本ADempiereの理事などを歴任。
2013年、NRIを退社し、株式会社オープンソース活用研究所を設立。

最新TOPICS

【講演資料を公開】9/24 DX時代のデータ活用とは? DataOpsを知り、メタデータ管理をはじめよう!(2020年10月24日 09:15)

2020/09/24(木)16:00~17:00「DX時代のデータ活用とは? DataOpsを知り、メタデータ管理をはじめよう!」と題したWebセミナーを開催しました。 本セミナーでは、「DataOps」の概要について解説するとともに、メタデータ管理の重要性や、どうすればメタデータ管理を定着させ、普及させることができるのかについて、事例を交えながら解説いたしました。 当日の講演資料は、以下から...

関連オープンソース

MXNet(エムエックスネット)

  • AI・人工知能

MXNet(エムエックスネット)とは、フル機能のディープラーニングフレームワークです。最先端のディープラーニング技術「畳み込みニューラルネットワーク(CNN)」「長短期メモリネットワーク(LSTM)」などをサポートしており、AWSが公式サポートを表明したことで大きな注目を集めています。

Jaspersoft(ジャスパーソフト)

  • BIツール

Jaspersoft(ジャスパーソフト)とは、世界で幅広く利用されているオープンソースのビジネスインテリジェンス(BI)ソフトウエアであり、高機能なレポーティングツールです。PDFやHTMLなどさまざまな出力形式の帳票を作成でき、Webまたはモバイルアプリケーションに組み込める分析機能なども提供します。

Apache Solr(アパッチソーラー)

  • 検索エンジン

Apache Solr(アパッチソーラー)は、Javaベースのオープンソース全文検索エンジンです。基本的には「ローカルにある文書ファイルの中からキーワードを含む文書を検索する」機能を提供します。他のシステムやツールと組み合わせることで、GoogleのようなWeb検索も実行できます。

Jupyter Notebook(ジュピターノートブック)

  • ビッグデータ処理ツール

Jupyter Notebook(ジュピターノートブック)とは、インタラクティブコンピューティング用Webベースノートブック環境です。ノートブック形式で段階的にプログラムを実行し、データ分析作業を行える対話型ブラウザ実行環境として利用できます。

Pentaho(ペンタホ)

  • BIツール

Pentaho(ペンタホ)とは、BI(Business Intelligence)に必要なすべての機能が用意されているプロフェッショナル向けのオープンソースBIスイート製品です。「ETL」「OLAP」「クエリ」「レポーティング」「インタラクティブ分析」「ダッシュボード」「データマイニング」など、データ統合から分析までを一貫して実施できます。

RapidMiner Studio(ラピッドマイナースタジオ)

  • BIツール

RapidMiner Studio(ラピッドマイナースタジオ)とは、ビジュアルデータサイエンスワークフローデザイナーです。「機械学習」「データマイニング」「テキストマイニング」「特徴選択」「予測分析」などのさまざまなデータ分析処理をプログラミングなしで実施できます。

scikit-learn(サイキットラーン)

  • AI・人工知能

scikit-learn(サイキットラーン)とは、Pythonのオープンソース機械学習ライブラリです。機械学習アルゴリズムを幅広くサポートしており、「分類回帰クラスタ分析」「ニューラルネットワーク」「サポートベクターマシン」「ランダムフォレスト」「k近傍法」などを手軽に実装できます。

Enigma(エニグマ)

  • FinTech系ツール

Enigma(エニグマ)とはブロックチェーンタイプの分散型計算プロトコルです。「シークレットコントラクト」を可能にする分散ネットワーク構築が可能で、Enigmaネットワーク内の「シークレットノード」が暗号化データに対して安全に計算を実行できます。

Elasticsearch(エラスティックサーチ)

  • 検索エンジン

Elasticsearch(エラスティックサーチ)とは、全文検索エンジンです。マルチテナント、スキーマレスでクラウドに最適化されています。HTTP WebインターフェースとスキーマフリーのJSONドキュメントを備えており、さまざまなユースケースに対応できる分散型RESTful検索が可能です。

Kibana(キバナ)

  • BIツール

Kibana(キバナ)とは、全文検索エンジン「Elasticsearch」と連携して使用するデータ解析/可視化プラットフォームです。データ分析および検索ダッシュボードで、全文検索エンジン「Elasticsearch」用のオープンソースのデータ視覚化プラグインとして機能します。

Chainer(チェイナー)

  • AI・人工知能

Chainer(チェイナー)とは、日本製の深層学習フレームワークです。ニューラルネットワークを誤差伝播で学習するライブラリで、Pythonで柔軟に記述し学習させることができます。特徴として「柔軟性」「直感的」「高機能」の3つを掲げています。

Apache Kafka(アパッチ カフカ)

  • ビッグデータ処理ツール

Apache Kafka(アパッチ カフカ)とは、分散ストリーミングプラットフォームです。「Pull型」「高スループット」などの特徴があり、ストリーミングデータパイプライン構築に利用できます。分散環境において「高スループット」かつ「低レイテンシ」で、大規模データを高速に取り込み配信できるメッセージングシステムです。

Caffe(カフェ)

  • AI・人工知能

Caffe(カフェ)とは、オープンソースのディープラーニングライブラリです。画像認識に特化しており、「高速動作」「GPU対応」「洗練されたアーキテクチャ/ソースコード」「開発コミュニティが活発」などの特徴があります。C++/Python/MATLABなどで使用できます。

Apache Hadoop(アパッチハドゥープ)

  • ビッグデータ処理ツール

Apache Hadoop(アパッチハドゥープ)とは、オープンソース大規模データ分散処理フレームワークです。「データ処理基盤」と「分散コンピューティング基盤」という2つの特徴を持つフレームワークとして大規模データを効率的に分散処理および管理できます。

Orange(オレンジ)

  • BIツール

Orange(オレンジ)とはデータマイニングソフトウェアです。初心者から専門家までのニーズに対応できる対話型データ分析ワークフローとして利用できます。「探索的なデータ分析」と「対話的なデータ視覚化」のためのビジュアルプログラミングフロントエンドを特徴としています。

TensorFlow(テンソルフロー)

  • AI・人工知能

TensorFlow(テンソルフロー)とは、Googleの機械学習/ディープラーニング/多層ニューラルネットワークライブラリです。データフローグラフを使用したライブラリで複雑なネットワークを分かりやすく記述できます。高い汎用性により研究レベルから実プロダクトにまで活用できます。

NGT(エヌジーティー)

  • ビッグデータ処理ツール

NGT(Neighborhood Graph and Tree for Indexing)とは、高次元ベクトルデータ高速検索技術です。ビッグデータ分析/ディープラーニング領域に活用できる技術として注目されています。

Apache Spark(アパッチスパーク)

  • ビッグデータ処理ツール

Apache Spark(アパッチスパーク)とは、インメモリ高速分散処理プラットフォームで、大規模データ処理用統合分析機能を提供します。

Presto(プレスト)

  • データベース

Presto(プレスト)とは、分析クエリ実行用分散型SQLクエリエンジンです。

Catalyst(カタリスト)

  • FinTech系ツール

Catalyst(カタリスト)とは、暗号通貨トレーディングアルゴリズムライブラリです。

Hyperledger(ハイパーレッジャー)

  • FinTech系ツール

Hyperledger(ハイパーレッジャー)とは、オープンソース「ブロックチェーン技術推進コミュニティー」です。「Linux Foundation」が中心となり、世界30以上の先進的IT企業が協力して、ブロックチェーン技術/P2P分散レッジャー技術の確立を目指しています。

Pylearn2(パイラーンツー)

  • AI・人工知能

Pylearn2(パイラーンツー)とは、数値計算ライブラリ「Theano」ベースのオープンソースディープラーニングライブラリです。

Theano(テアノ)

  • AI・人工知能

Theano(テアノ)とは、Python用数値計算ライブラリです。多次元配列を効率的に使用する数式について定義/最適化/評価でき、ディープラーニング計算処理によく利用されます。

H2O(エイチツーオー)

  • AI・人工知能

H2O(エイチツーオー)とは、オープンソースの分散型インメモリマシン機械学習プラットフォームです。

Eclipse Deeplearning4j(イクリプスディープラーニングフォージェイ)

  • AI・人工知能

Eclipse Deeplearning4j(イクリプスディープラーニングフォージェイ)とは分散型深層学習ライブラリです。「Java」「JVM(Java仮想マシン)」「各種アルゴリズム」をサポートします。

Keras(ケラス)

  • AI・人工知能

Keras(ケラス)とは、Python実装の高水準ニューラルネットワークライブラリです。「TensorFlow」「Microsoft Cognitive Toolkit」「Theano」上で実行できます。

Talend Open Studio(タレンドオープンスタジオ)

  • ETL

Talend Open Studio(タレンドオープンスタジオ)とは、ELTビジュアル開発ツール群です。コードを記述せずにETLプロセスを作成できる点が特徴です。

Torch(トーチ)

  • AI・人工知能

Torch(トーチ)とは、「機械学習ライブラリ」「科学計算フレームワーク」です。GPUを活用する機械学習アルゴリズムを幅広くサポートしています。

Pravega(プラベガ)

  • ストリームデータ処理

Pravega(プラベガ)とは、オープンソースの分散ストレージサービスです。連続した無制限のデータに対してストレージ抽象化を行う、分散コンピューティングコーディネーションフレームワークです。

Fess(フェス)

  • 検索エンジン

Fess(フェス)とは、Javaベースの全文検索サーバです。検索エンジンとして「Elasticsearch」を利用します。「5分で簡単に構築可能」な導入容易性が特徴です。

Schema Registry(スキーマ レジストリ)

  • ビッグデータ処理ツール

Schema Registry(スキーマ レジストリ)とは、メッセージングシステム「Apache Kafka」ベースのストリームデータ基盤「Confluent Platform」の1コンポーネントです。一元的なスキーマ管理機能を提供します。

Apache NiFi(アパッチナイファイ)

  • BIツール

Apache NiFi(アパッチナイファイ)。データフローオーケストレーションツールです。Webインタフェースでシステム間のデータフロー自動化定義が可能です。IoTデータフローを見据えた双方向性が特徴です。

Apache Flink(アパッチフリンク)

  • ストリームデータ処理

Apache Flink(アパッチフリンク)。分散ストリーム処理プラットフォームです。バッチ処理にも対応し、耐障害性/拡張性を備えたストリーム処理基盤です。

Apache Nutch(アパッチナッチ)

  • ビッグデータ処理ツール

Apache Nutch(アパッチナッチ)。オープンソースのWebクローラフレームワークです。Apache Hadoopによる拡張性が特徴です。

DSSTNE(デスティニー)

  • AI・人工知能

DSSTNE(デスティニー)。ディープラーニングライブラリです。Amazonがオープンソース公開したもので、スパース(疎)データに強いという特徴があります。

Apache Drill(アパッチドリル)

  • ビッグデータ処理ツール

Apache Drill(アパッチドリル)。ビッグデータに対応するスキーマフリーSQLクエリエンジンです。構造化データ/非構造化データなどのさまざまなデータソースに対して、直接SQLクエリを実行して結果を得ることができます。

Norikra(ノリクラ)

  • ストリームデータ処理

Norikra(ノリクラ)。ストリームデータ処理エンジンです。リアルタイムイベントストリームデータに対して、SQLライク言語でスキーマレスなデータ処理が可能です。手軽に利用できる点が特徴です。

Apache Lucene(アパッチルシーン)

  • 検索エンジン

Apache Lucene(アパッチルシーン)。高性能/高機能/極めてスケーラブルなオープンソース全文検索エンジンライブラリです。

Apache ManifoldCF(アパッチマニフォールドシーエフ)

  • ビッグデータ処理ツール

Apache ManifoldCF(アパッチマニフォールドシーエフ)。オープンソースクローラフレームワークです。インターネット上やイントラネット内のさまざまなサーバに保管されているドキュメントコンテンツ(Webページ/文書ファイル/DBデータなど)を収集し、それを検索エンジンに送ります。

Microsoft Cognitive Toolkit(マイクロソフトコグニティブツールキット)

  • AI・人工知能

Microsoft Cognitive Toolkit(マイクロソフトコグニティブツールキット)。AI技術を利用したディープラーニング(深層学習)ツールキットです。旧称「CNTK」から改名されました。

Apache Storm(アパッチストーム)

  • ストリームデータ処理

Apache Storm(アパッチストーム)。オープンソースで耐障害性に優れた高速分散処理型ニアリアルタイムビッグデータ処理フレームワークです。

OpenOLAP(オープンオーラップ)

  • BIツール

OpenOLAP(オープンオーラップ)。PostgreSQLを利用した、多次元データベース(OLAP)システム

Eclipse BIRT(エクリプス バート)

  • BIツール

Eclipse BIRT(エクリプス バート)。BIRTとは、Business Intelligence and Reportting Toolsの頭文字。Eclipse上で利用できるレポート開発環境

関連記事

無料資料プレゼント

ポストコロナ時代にデータセンターはどう活用すべきか

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



セミナー講演資料公開中

Webセミナー/企業のデータ活用に立ちはだかる「3つの壁」 ~どの壁で止まっているのか、自社のポジションを判定し、壁を乗り越えるためのワークショップ~

【webセミナー】データ活用の専門家集団が語る、小売業における業務の高度化とは?

帳票の課題と今 ~BIと帳票/クラウド時代の帳票/帳票ソフトの選択~

  • オープソース書籍(サイド)

facebook

twitter