Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

データ分析におけるPythonのメリット・デメリットを徹底解説!【寄稿記事】

f:id:kenken0326:20200818174741p:plain

こんにちは。PyQマーケティングチームです。

Python学習チャンネルに訪問してくれたあなたは何がきっかけでPythonに興味を持ちましたか? 「データサイエンスを学びたいから」という動機の方は、結構多いのではないでしょうか?

実際にPyQでも、データサイエンスで必要となる前処理やデータ可視化について学べる「データ分析」コースや、統計の基本について学べる「統計分析」コースがあります。また、より発展的な内容として「機械学習」「数理最適化」のコースも用意されています。

今回はPyQのユーザーさんであり、データサイエンスに強いウマたんさん(@statistics1012が学習者ならではの目線でPythonの魅力について語ってくれました。

大規模ECサイトでデータ分析を担当しているウマたんさんが登場

こんにちは!消費財メーカーの大規模ECサイトでデータ分析を担当しているウマたん(@statistics1012と申します。

普段は個人の活動としてデータサイエンスとビジネスをつなぐ「スタビジ(Statistics&Business)」というサイトの運営も行っています。
もともと学生時代の研究では、Rを用いて分析を行っていたのですが、企業に入りPythonを使うようになりました。

Pythonはずぶの素人だったもののPyQを利用させてもらってPython習得の足掛かりを作ったのは記憶に新しいです。 今では実務でほとんどPythonを使うようになり、Pythonの魅力にとりつかれています。 Pythonの人気は近年急上昇していて、周りもPythonを使う人がほとんどになってきています。

ただ、
なぜPythonを使う方がいいの?

実際Pythonを使うことによるデメリットはないの?

などという意見もあると思います。

この記事では、データ分析においてPythonを使うメリット・デメリットについてまとめていきたいと思います。
ぜひこの記事を読んで、Pythonに関する理解を深めてくださいね!

解説:R言語とは
オープンソースの統計解析向けプログラミング言語です。PythonやC言語などの汎用プログラミング言語とは違い、統計解析に特化して開発されました。様々な統計解析やデータ可視化のパッケージを利用できます。
URL:https://www.r-project.org/

Pythonとは

Pythonとは、1991年に開発された言語で、全世界でよく使われています。
コードの可読性を高めて分かりやすくコーディングできるように設計された言語で、データサイエンスブームの高まりと共に人気も高くなってきました。

Pythonはサーバーサイド言語としても活躍するため、Webアプリケーションの開発やAPI活用も強みとして持っています。
また、Web上のデータを抽出するWebスクレイピングや作業の自動化なども簡単に実装できます。
これにより、Pythonを使えばWeb上のデータを抽出してそれらのデータを分析して結果をリアルタイムで表示するというようなWebアプリケーションを作成することも可能なんです。
非常に汎用的な言語なので覚えておいて損はないでしょう。

データ分析時のPythonのメリット

それでは、Pythonを使ったデータ分析のメリットについて簡単に解説していきましょう!
データ分析におけるPythonの特徴を知っておくことでモチベーションを高めると共に活用イメージを湧かせましょう!
大きく分けて以下の4つのメリットがあります。

  1. 最新手法を使用できるライブラリがそろっている
  2. データ加工・集計のしやすさ
  3. そもそもPythonを使っている人が多い
  4. ネットの情報が豊富(になってきた)

最新手法を使用できるライブラリがそろっている

まずはじめに最新手法を実装できるライブラリがそろっているのが何といってもうれしいところです。

勾配ブースティング木

勾配ブースティング木(Gradient Boosting Decision Tree: GBDT)の手法であるXGBoostLightGBM、そしてCatBoostも、同名のパッケージを使うことで簡単に利用できます。

XGBoost: https://xgboost.readthedocs.io/en/latest/
LightGBM: https://lightgbm.readthedocs.io/en/latest/
CatBoost: https://catboost.ai/

勾配ブースティング木とは、決定木とアンサンブル学習のブースティングを組み合わせた手法であり、Kaggleなどの世界的データコンペの上位モデルとして頻繁に利用されています。 各パッケージは、XGBoostが2014年、LightGBMが2016年、CatBoostが2017年に初リリースされており、現在も開発が続いています。

※ 勾配ブースティングについては、スタビジさんのサイトで詳しく紹介されています。

toukei-lab.com

※ 2020年3月〜6月に開催されたKaggleの「M5 Forecasting - Accuracy」(ウォールマートにおける商品の販売数量を予測するコンペティション)では、1位のソリューションでLightGBMが使われています。
参考URL:M5 Forecasting - Accuracy | Kaggle (1st place solution)

ディープラーニング

また、PyTorchTensorFlowKerasなどのディープラーニング関連のライブラリがしっかり整っているのも非常にうれしいところです。

PyTorch: https://pytorch.org/
TensorFlow: https://www.tensorflow.org/
Keras: https://keras.io/


同じくデータ分析言語として人気のRにはディープラーニング関連のライブラリはPythonほどそろっていません。
そのためディープラーニングを使ったデータ分析やAI開発の場面ではPythonは必須言語になっています。

データ加工・集計のしやすさ

続いて、データ加工・集計のしやすさを挙げておきましょう!
データ加工・集計はSQLで事前に行う部分も多いですし、Rでももちろんできますが、個人的にそれぞれの言語を使った上で一番Pythonが使いやすいなと感じています。

解説:SQL(エスキューエル)とは
リレーショナルデータベースを操作するための言語です。SQLを用いて、データベースのデータを検索したり、データの追加・更新・削除ができます。

PythonのPandasはデータフレーム型のデータ加工・集計を幅広く行えますし、リスト内包表記を使えば非常にコンパクトなコードで記述できます。
Rもdplyrを使えばデータフレーム加工は出来ますが、Pythonの方がかゆいところに手が届きます。

解説:pandasとは
Pythonでデータ解析を支援する、オープンソースライブラリです。表やテーブル、時系列データなどを操作するためのデータ構造と、
それらを扱うメソッド・関数などが提供されています。
URL:https://pandas.pydata.org/

Pythonを使っている人が多い

また、Pythonを使う人が非常に増えてきています。

データサイエンスのリーディングサイトであるKDnuggetsで毎年行われている「過去12ヶ月以内に実際のプロジェクトで使ったことがあるソフトウエア」の投票によると、2015年時点でPythonを使っていたのは投票者全体の30.3%(4位)でしたが、年々利用率が伸び、2019年では65.8%(1位)の人が使用しているという結果が出ています。

2015年の結果: https://www.kdnuggets.com/2015/05/poll-r-rapidminer-python-big-data-spark.html
2017-2019年の結果: https://www.kdnuggets.com/2019/05/poll-top-data-science-machine-learning-platforms.html

Pythonユーザーが多い分、業務を推進する上ではPythonを使う方が融通が利くというメリットがあります。
実際、私自身もBtoC/EC系のマーケティングサイド・ビジネスサイドの分析に関わっていますが、ほとんどの人がPythonを用いています。

ネットの情報が豊富(になってきた)

もともとあまりネットの情報はなかったのですが、Pythonの人気が高まっていくと共にネットの情報も豊富になってきました。
今では、このPyQのようにPythonを勉強しやすい環境は整っていますし、実際にコーディングをしていて詰まっても調べれば大抵のことは解決します。
ただ、まだまだ海外圏の方が情報豊富なのは間違いないので、最新の情報を得るのであれば海外リソースを探した方がよいでしょう。

データ分析時のPythonのデメリット

メリットばかりのPythonですが、デメリットがないというわけではありません。
少しだけPythonのデメリットについても触れておきましょう。

C言語などに比べると処理が遅い

Pythonの弱点は処理が遅いことです。
C言語などに比べるとやはり処理速度は劣ってしまうため、大規模データの計算負荷の高い処理を行う場合は不便です。
そのため、Pythonで大枠を記述し負荷の高い部分だけC言語で記述する場合もあります。
データ分析時には高次元の行列計算を行う場面も少なくありません。
その場合はC言語を検討してみるとよいでしょう。

解説:C言語とは
アプリケーション開発やゲーム開発、OS開発などあらゆることができる汎用的なプログラミング言語です。
1970年代前半に開発され、後発のプログラミング言語に大きな影響を与えました。
URL:http://www.open-std.org/jtc1/sc22/wg14/

インデントによる制約

Pythonの良い特徴でもあるんですが、Pythonはインデントによって構文を制御します。
そのためインデントがルールから少しでもズレているとエラーになります。
他の言語に慣れている人は最初のうちはPythonのインデントに戸惑うこともあるかもしれません。
ただ、このインデントによる制約はある意味良い効果もあり、どんな人が書くコードも基本的にインデントがそろうようになっているので可読性が高いです。

まとめ

ここまでPythonをデータ分析で使う際のメリット・デメリットについて見てきました。
デメリットもいくつかありますが、やはりメリットが目立ちますねー!
この記事で、少しでもPythonに対しての理解が深まれば幸いです。
扱いやすくかつ出来る幅の広いPython、確実にマスターしておきたい言語です。
エンジニアやデータサイエンティストだけでなく、ビジネスサイド・マーケターの人たちにも学んで欲しい言語です。
ぜひPythonをマスターしてデータ分析の力でビジネスに価値を生んでいきましょう!

寄稿者プロフィール

f:id:kenken0326:20200819175323p:plain
ウマたん(@statistics1012)

データサイエンティスト&デジタルマーケター。

統計学がバックグラウンドの消費財メーカー勤務データサイエンティスト。 分断されたビジネスとデータサイエンスを繋ぐべく様々な情報を発信。Youtubeチャンネルの運営や出版活動もおこなっている。

ブログhttps://toukei-lab.com/
Youtubeチャンネルhttps://www.youtube.com/channel/UC0J7Yk_O3g1-x-xD7xxAE8Q
Twitterhttps://twitter.com/statistics1012

Copyright ©2017- BeProud Inc. All rights reserved.