Pythonと統計解析を現役エンジニアが解説【初心者向け】

初心者向けにPythonと統計解析について現役エンジニアが解説しています。機械学習や統計解析の分野で多く用いられているプログラミング言語がPythonになります。コードがシンプルでライブラリや動作するプラットホームが豊富だからです。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

Pythonと統計解析について解説します。

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonと統計解析について詳しく説明していくね!

大石ゆかり

お願いします!

 

Pythonが統計解析に適している理由

近年のAI(人工知能)ブームによりPythonが注目されています。

AIの根幹をなす機械学習や統計解析の分野で多く用いられているプログラミング言語がPythonです。
統計解析にはRやCといった言語も使われていますが徐々にPythonに置き換わってきています。

Pythonには以下のようなメリットがあります。

  • コードがシンプルで学びやすい:文法がとてもシンプルで分かりやすいためプログラミング経験のない初学者にもおすすめです。
  • ライブラリが豊富:統計や機械学習をはじめ、多くのライブラリが整備されています。ライブラリが豊富なためにPython言語を選ぶ利用者が多く、その人気ゆえに新たなライブラリの開発につながるという好循環が生まれています。
  • プラットフォームの多さ:WindowsやMac、Linuxなど、主要なOSをサポートしています。また最近ではGoogle Colaboratoryなどのクラウド実行環境も整備されています。

 

統計解析に役立つPythonのライブラリ

Pythonには以下のような統計解析に役立つライブラリが用意されています。

  • Pandas:DataFrameというデータの可視化に役立つ機能を持ったライブラリです。統計解析ではデータの前処理段階で多く用いられます。
  • Numpy:行列演算に強いライブラリです。内部はC言語で実装されているため、高速に行列演算を行うことができます。統計解析では実際のモデリングや推定の演算段階で多く用いられます。
  • SciPy:統計処理の基本となる推定から統計モデルの作成まで、幅広い領域をサポートするライブラリです。
  • matplotlib:グラフ描画用のライブラリです。バーチャートや散布図など、主要なグラフ表現を網羅しています。seabornというライブラリと組み合わせることでよりグラフィカルな表現が可能となります。

 

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に書いてみよう

今回のサンプルコードでは、SciPyによる基本的な統計量の表示、matplotlib(seaborn)によるデータの可視化の例をご紹介します。

実行はAnacondaのjupyterNotebookで行いました。

Anacondaのインストール方法については以下の記事を参考にしてください。
また必要なライブラリも併せてインストールしておきましょう。

より効率よく開発できる!AnacondaでPythonの環境を構築する方法

はじめに必要なライブラリを読み込みます(実行結果は特にありません)。

import scipy as sp
import seaborn as sns
sns.set()

今回はseabornに添付されているサンプルデータ「iris」を使用します。

iris = sns.load_dataset("iris")
iris.head()

実行結果は以下のようになります。

次にSciPyによる基本的な統計量を表示してみましょう。

はじめは平均値です。

#平均値
sp.mean(iris)

実行結果は以下のようになります。

sepal_length 5.843333
sepal_width 3.057333 
petal_length 3.758000 
petal_width 1.199333 
dtype: float64

次に標準偏差を求めてみましょう。

# 標準偏差
 sp.std(iris, ddof=1)

実行結果は以下のようになります。

sepal_length 0.828066 
sepal_width 0.435866 
petal_length 1.765298 
petal_width 0.762238 
dtype: float64

最後にmatplotlib(seaborn)で特徴量を可視化してみましょう。今回はペアプロットを使います。

sns.pairplot(iris, hue="species")

実行結果は以下のようになります。

 

監修してくれたメンター

太田和樹(おおたかずき)

ITベンチャー企業のPM兼エンジニア

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント。

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。