- 週間ランキング
Pythonで様々なライブラリを使用する際、Anacondaというソフトウェアを利用してPythonの環境構築を行うことで、予め最低限必要なライブリを実行可能な状態にすることができます。
なお本記事は、TechAcademyのAIオンライン講座の内容をもとに作成しています。
Pythonで数値計算を行う場合にもっとも有名なライブラリといえます。
このNumPyというライブラリは、SciPyというさらに高度な数値計算処理を行うことが出来るライブラリの元にもなっています。
数値計算で特に配列に関する処理は、世界中でサンプルや解説が存在するため、学習する上でも非常に良いです。
NumPyの内部はC言語やFortranで実装されています。
これは、処理速度が高速であることを意味します。
Anacondaに標準搭載されています。
Pythonの基礎文法を学習後で、Anaconda環境を用意していれば直ぐに利用することができます。
ベクトルや行列等の多次元配列をPythonで実装したり、多次元配列を簡単に操作する必要がある大規模プログラムで利用できます。
NumPyよりも機能が豊富なSciPyがあるにもかかわらずNumPyを利用する理由としては、SciPyがNumPyを元に実装されていることや、配列操作に関しては、NumPyを利用したサンプルや解説が基本となっているため、配列に関してはNumPyを利用することで開発効率が上がります。
重要なコードはCythonまたはC言語で実装されており、高速に動作します。
R言語のような処理をPythonで可能にします。R言語は統計を行う際に利用するプログラミング言語で、ベクトル処理、統計解析、グラフ表示を行うことができます。
pandasもR言語の様な処理が可能です。
また、CythonやC言語で実装されているため、非常に高速に動作します。
pandasは、単体だけでなく、NumPyで作成されたデータを、WebエンジニアになじみのあるMySQLやPosgreSQLのようなSQL文を利用してそうだ可能です。
つまり、Webアプリケーションの実装と同様に、WHEREやGROUPを使用して慣れた方法でデータを扱うことが可能です。
Anacondaに標準搭載されています。
Pythonでデータ分析を行う際に最初に利用するレベルのライブラリです。
NumPyとSciPyで作成したデータをより分析したり簡易的なグラフにする際に利用します。
また、SQL文を操作するような慣れた処理でテーブル操作が可能となるため、統計分析する際もWebエンジニアであれば簡単に学習が可能です。
また、ビニングという金融システムにも利用される処理も行います。
ピニングとは、ある程度連続したいくつかの値をより少ない数の「ビン」にグループ化することです。
サイパイと呼びます。
NumPyには配列データ型とインデックス作成、並べ替え、再形成等が利用できました。
さらに高度な数値計算処理を行う場合は、SciPyを利用します。
そうはいっても、SciPyはNumPyを元に実装されています。
SciPy は統計、最適化、積分、線形代数、フーリエ変換、信号処理、イメージ処理、遺伝的アルゴリズム、ODEソルバ、特殊関数等をPythonを使って簡単に利用することができます。
Anacondaに標準搭載されています。
Pythonの基礎文法を学習後で、Anaconda環境を用意していれば直ぐに利用することができます。
「利用メソッド名:利用シーン」という並びで、具体的に利用シーンを代表的な一部メソッドだけ紹介します。
データをグラフや画像データとして表示することが出来ます。
pandasの簡易表示よりも更に複雑な表示が可能です。
公式ページでは出力グラフとその為のコード例がセットで説明されているので学習し易いです。
Anacondaに標準搭載されています。
NumPyとSciPyでデータを作成後に使用します。
NumPyとSciPyを利用して用意したデータを分かりやすいグラフなどで表示したい場合に使用します。
データを図表で表示させる場合はmatplotlibを利用することが一般的です。
scikit-learnは、Google製の機械学習用のライブラリです。
分類回帰クラスタ分析(ニューラルネットワーク、サポートベクターマシン、ランダムフォレスト、k近傍法など)を手軽に実装できます。
これまで紹介した、NumPy、SciPy、Pandas、Matplotlibと簡単に連携することが出来ます。
Anacondaに標準搭載されています。
NumPy、SciPy、Pandas、Matplotlibを使ってみた後に、NumPy、SciPy、Pandas、Matplotlibを連携させたい エンジニア向け
分類・回帰・クラスタリング・次元削減等の用途で利用します。
分類 (Classification) とは、ラベルとデータを学習し、学習モデルを利用して、データにラベルを付けることができます。
回帰 (Regression) とは、数値をデータで学習し、学習モデルを利用して、数値を予測することができます。
クラスタリング (Clustering)とは、似ているデータをまとめることを学習し、学習モデルを利用して、同じようなデータ構造を見つける時に利用します。
次元削減 (Dimensionality reduction)とは、 データの次元を削減しデータの可視化、圧縮化を行うことができます。
TensorFlowは、Googleが開発した深層学習(ディープラーニング)を行うオープンソース・ソフトウェアです。
公式ページのチュートリアルを利用するだけで次の実装が可能です。
これまでに紹介した、機械学習に関するライブラリを一通り学習したエンジニアが、深層学習アルゴリズムを活用する際に利用するレベルです。
例えば顔認識システムによる監視カメラからのデジタル画像を元に顔を識別し、顔の画像が登録されたデータベースと比較することによる識別を行う技術で利用可能です。
これにより、特定の人物を世界中の監視カメラから探し出すことができます。
応用技術として、音声認識技術、被写体の認識、画像検索、リアルタイム翻訳、Web検索最適化などの分野での使用が想定されています。
今回は、便利なPythonで使えるライブラリを紹介しました。
画像認識やテキスト認識など様々な目的に合ったライブラリが存在するので、ケースに応じて機械学習ライブラリを使ってみてください。
また、オンラインのプログラミングスクールTechAcademyでは、AIオンライン講座を開催しています。
AI(人工知能)の構築に必要な機械学習・ディープラーニングについて実践的に学習することができます。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。
この記事を監修してくれた方 中本賢吾(なかもとけんご) 開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。 その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。 |