Pythonでできることって何だろう?
Pythonでできることって何だろう?
Pythonでできることって何だろう?
Pythonは現在、世界中から注目を浴びているプログラミング言語です。そのため、プログラミングに少しでも興味のある方なら、名前を聞いたことがあるかもしれません。
Pythonにも他のプログラミング言語と同様に「ライブラリ」があります。Pythonのライブラリは、他のプログラミング言語に比べ充実していて、活用すれば実にさまざまな機能が短時間で実装できるようになります。
そこで今回は、Pythonのライブラリを用いてできることと、おすすめのライブラリをご紹介します。
そもそもPythonの「ライブラリ」とは?
そもそもPythonの「ライブラリ」とは?
Pythonそのものはとてもシンプルな構造です。そのため言語を習得することはさほど難しくはありません。その上強力な「ライブラリ」が充実していて、非常に応用範囲が広いのです。
ライブラリとは、ある目的のために機能をまとめたパッケージの総称を指す言葉です。Pythonでは、複数の関数をまとめたものをモジュールと呼び、さらに複数のモジュールをまとめたものをパッケージと呼びます。ライブラリとはこのパッケージを複数集めたもののことです。
ライブラリには大きく分けて、次の2種類のタイプがあります。
オプションで必要なときにダウンロードしてインストールするタイプ
Pythonにもともと備わっているタイプ
特に後者のことを「標準ライブラリ」と呼び、Pythonはこの標準ライブラリを用いることを前提としています。
また、標準ライブラリではないものの、頻繁に使われるためほぼ標準ライブラリのような扱いをされているライブラリも存在します。
代表的なものが数値計算などを行う「numpy」です。これはPythonの標準ライブラリではないものの、numpyなしでは実用的なプログラムを作るのが困難なほど重要なライブラリといっても過言ではありません。
ライブラリを用いれば高度な機能も簡単に実現できてしまうことから、プログラミングの作業が容易になります。Pythonは他の言語に比べて圧倒的に実用的なライブラリが充実しているので、プログラミングする上で便利な言語と言えるでしょう。
これは便利!Python「おすすめライブラリ」3選
これは便利!Python「おすすめライブラリ」3選
では、Pythonライブラリにはどのようなものがあるのでしょうか。ここでは3つのライブラリをご紹介します。
1.レコメンド機能におすすめのライブラリ「scikit-surprise」
レコメンド機能のライブラリである「scikit-surprise」を紹介する前に、そもそも「レコメンド機能」とはどのような機能なのかご紹介致します。
例えばネットショップで買い物をした際に、過去の購入履歴や商品の検索履歴などから商品をおすすめされた経験がある方は多いでしょう。この機能を「レコメンド機能」と呼びます。
レコメンド(recommend)とは「おすすめする」という意味で、ユーザーに商品やサービスを推薦する機能のことを「レコメンデーション」と表現することがあります。
このレコメンド機能を実行するために必要となる予測アルゴリズムや類似度評価などを提供しているのが「scikit-surprise」というライブラリです。
これにより、ECサイトでのユーザーの購買履歴などのデータを分析して、類似度の高いユーザーグループを調べ、その中の購入傾向に基づいた「おすすめ商品」を提示することができるようになります。
似たようなライブラリとして「crab」や「recsys」がありますが、小まめにアップデートされている「scikit-surprise」が最も利用しやすいライブラリとしておすすめです。
「scikit-surprise」公式サイト
2.スパムメールフィルタリングには「scikit-learn」がおすすめ
次に、スパムメールフィルタリングに役立つ「scikit-learn」をご紹介します。
スパム(spam)とは、インターネット上で多くのユーザーに、許可なく無差別かつ大量に送りつけられるメッセージのことです。その中でも特にメールによるものを「スパムメール」や「迷惑メール」と呼びます。
スパムメールの多くは広告目的ですが、場合によってはフィッシング詐欺などの犯罪を目的とするものもあります。
そういった迷惑メールを拒否したり転送したりできる機能が「スパムメールフィルタリング」で、フィルタリング処理を行う際に役立つライブラリが「scikit-learn」なのです。
「scikit-learn」はもともとは機械学習全般を行うためのライブラリであり、必ずしも、スパムメールフィルタリング専用のライブラリというわけではありません。
機械学習とはコンピューターに自律的に学習させるための仕組みのことで、「scikit-learn」はサポートベクトルマシン、回帰分析などさまざまな機械学習のパッケージをまとめたライブラリです。
このライブラリで利用できる機能は、4つに大別されます。
1.分類(Classification)
問題と正解の組み合わせの学習を踏まえて、未知の問題に対する答えが属するクラスを予測します。具体的な答えを出すことを目的としておらず、例えば、合格か不合格かのようなクラスの分類による予測を立てています。
2.回帰(Regression)
問題と正解の組み合わせを学習してデータの法則性を導き出し、未知の問題に対する将来の数値を予測します。分類のようなクラス分けではなく、回帰では具体的な数値の予測を立てるときに活用されています。
3.クラスタリング(Clustering)
データの類似したもの同士を自動的にまとめあげます。
4.次元削減(Dimensionality reduction)
データの次元を削減して取り扱いやすいデータに変換します。(ここでは、データの次元についての説明については割愛致します。)
スパムメールフィルタリングで行われる処理はこのうち「分類」に該当する処理であり、代表的なアルゴリズムとしては「Naive Bayes」があります。
このライブラリを用いて、あらかじめ典型的なスパムメールと一般のメールをユーザーが事前にコンピューターに学習させておき、新規にやってきたメールの内容がどちらに分類されるかを自動的に決定させるというものです。
つまり、スパムメールに含まれている文字集合と一般的なメールに含まれる文字集合の特徴を計算し、スパムメールか一般のメールのうちどちらに分類される可能性が高いかを判断しています。
Naive Bayes(ナイーブベイズ)とは
データが与えられたときの全ての推定の確率を計算し、最も確率の高いものを推定結果として出力するアルゴリズムです。数学(確率論)の定理である「ベイズの定理」がもとになっています。詳細の説明はここでは割愛します。
「scikit-learn」公式サイト
3.画像認識ライブラリ:OpenCV
最後に、画像認識ライブラリ「OpenCV」をご紹介します。
Open-cvは、正式には「Open Source Computer Vision Library」という名称であり、オープンソースのコンピュータービジョン(画像認識や画像処理など)を実現するオープンソースのライブラリです。
もともとこのライブラリはインテルによってC/C++言語用のライブラリとして開発されました。しかし近年では、顔認識技術のようにコンピュータービジョンの技術と人工知能・機械学習の技術がセットで用いられることが多くなり、その両者が簡単に実現できるPythonで利用されるケースが増えてきました。
このライブラリを用いると、以下のようなことができるようになります。
フィルター処理
行列演算
オブジェクト追跡(Object Tracking)
領域分割(Segmentation)
カメラキャリブレーション(Calibration)
特徴点抽出
物体認識(Object recognition)
機械学習(Machine learning)
パノラマ合成(Stitching)
コンピュテーショナルフォトグラフィ(Computational Photography)
グラフィカルユーザーインターフェース(Graphical User Interface /GUI)
このように豊富な機能があるライブラリであり、さまざまな領域で利用されています。例えばセキュリティ分野においては顔認証として用いられたりしている他に、ゲームなどでもカメラに写っている人間の動きを認識する機能を実現するためといった目的で利用されています。
「OpenCV/Open Source Computer Vision Library」公式サイト
早速ライブラリをインストールしてみよう!
早速ライブラリをインストールしてみよう!
既にお伝えした通り、Pythonは高度なライブラリを利用することによってさまざまな処理や機能を容易に利用することが可能です。
それを可能にしているのはライブラリ自体のおかげであることはもちろんですが、Pythonの高度なライブラリ管理機能の賜物でもあります。
そこで、ここではPythonライブラリのインストールおよび管理方法についてご説明します。
1.PyPI(Python Package Index)
Pythonライブラリをインストールする際、知っておかなければならない項目の1つがPyPI(Python Package Index)です。
PyPIとは、ネット上のPythonパッケージ管理システムのことで、一般で利用されているサードパーティ製のPythonのライブラリは全てPyPIで登録・管理されています。先ほどご紹介した3つのライブラリも、PyPIから取得可能です。
また、誰かが新しいライブラリを開発した場合もPyPIにアップロードすることで全世界に公開することができます。
他の言語でもライブラリを用いますが、一般的にはライブラリの公式サイトなどでファイルをダウンロードしプログラムの中に組み込みます。しかし、PythonはPyPIを介してダウンロード・インストールする仕組みが言語仕様の中に取り込まれており、この点で特異な言語といえます。
そして、その際に用いるのが「pip」というコマンドです。
2.pip(Pip Installs Packages、Pip Installs Python)
pip(Pip Installs PackagesまたはPip Installs Python)とはPyhonにインストールするライブラリの管理ツールです。もともとはオプションでしたが、Python2系統ではバージョン2.7.9以降、Python3系統ではバージョン3.4以降からデフォルトで付属するようになりました。
pipはコマンドラインインターフェースで簡単にPythonのパッケージを行えるコマンドです。次にこのコマンドの具体的な使い方をご説明します。
3.ライブラリのインストール方法
ライブラリをインストールする際に、最初にやらなくてはならないのがPythonのバージョン確認です。
というのも、ライブラリは対応するPythonのバージョンが定められているため、不適切なバージョンのPythonを利用していると、そもそもライブラリをインストールすることができないからです。
1.Pythonのバージョン確認方法
Pyhtonのバージョンを調べる方法は使用しているOSによって多少異なります。まず、Windowsの場合は、コマンドプロンプトで次のように入力してください。
1
python
※「python –version」もしくは「python -V」と入力してもよいです。
このほか、IDEを使っている場合は、その管理画面から確認する方法などもあります。
Macの場合も基本は同じですが、ターミナルを立ち上げてコマンドを入力するにあたって、MacOSにはもともとpython2系統のコンパイラがあらかじめインストールされていることから、2系統を用いるのであれば、以下のように入力します。
1
python
また、3系統を用いるのであれば次のように入力してください。
1
python3
なお、Pythonのバージョンは、統計処理や機械学習などでよく用いる「Jupyter notebook」上で確認することもできます。
2.pipのバージョン確認方法
続いて、pipのバージョン確認を行います。python同様、pipにもバージョンがあります。古いバージョンの場合、ライブラリをインストールできない場合があるため注意が必要です。
pipのバージョンの確認には、次のコマンドを実行します。
1
pip -V
3.pipでパッケージをインストールする
pipでパッケージをインストールするには「pip install パッケージの名前」と入力するだけで完了です。
例えば、pandasというライブラリをインストールする場合は、以下のように入力します。
1
pip install pandas
4.インストールできたか確認する
最後にインストールができたかどうかの確認をします。
1
pip list
上記コマンドでインストール済みのパッケージ一覧と、そのバージョンを表示できます。この中に自分がインストールしたパッケージが含まれていれば、インストールは成功です。
なおこの際、以下のコマンドでもほぼ同じことができます。
1
pip freeze
この際出力されるリストを、テキストファイル(requirements.txt)に記憶することができます。以下コマンドを用います。
1
pip freeze > equirements.txt
このようにテキストファイルに記憶しておけば、このファイルを基にして違う環境でもテキストに記録されているパッケージを全てインストールすることができます。
異なる環境にインストールする際は、次のコマンドを入力します。
1
pip install -r requirements.txt
このコマンドを実行すると、requirements.txtに書かれているパッケージがすべてインストールされます。
この方法は同じ設定を持つ仮想環境を別に作りたいときや、古いコンピューターから新しいコンピューターに移行し、新たにパッケージのインストールをしなくてはならないときに便利です。
その他にも、pipにはインストール済みパッケージで最新ではないものを表示したり、最新でないものをアップデートしたり、アンインストールする機能も存在します。
ご紹介したようにPythonには多数の便利なライブラリが存在し、現在も増え続けています。
Pythonを使いこなせるかは、今回ご紹介したようなライブラリをいかに効果的に活用できるかにかかっています。Pythonに限らずプログラミング言語の習得には、体系的に知識を学ぶだけではなく、実際に自分で試すことが何よりも大切です。まずは興味をもったライブラリをインストールし、試行錯誤しながら学習していくことをおすすめします。