1. ガイダンス、データ活用事例の紹介、Python 環境の準備¶
1.1 現代社会におけるデータ活用¶
現代社会においてデータ活用は、ビジネスや社会全体の発展に不可欠な要素となっています。情報通信技術(ICT)の急速な進化により、多くの情報がデータ化され、日々膨大なデータが生成・蓄積されています。このような膨大はデータは 「ビッグデータ」 とも呼ばれ、ビッグデータを適切に分析・活用することで、これまで見えなかった洞察や新たな価値を引き出すことが可能になっています。
1.1.1 データ活用事例¶
手軽に誰でも膨大なデータを扱えるようになった背景から、このデータをいかに有効活用するかが、社会全体の重大な課題となっています。企業においては、顧客行動の分析によるマーケティングや、業務プロセスの効率化、リスク管理などに活用されています。行政においては、交通データを用いた都市計画の最適化や、SNS 上の発言に基づく政策が行われています。医療分野では、診断データの分析を通じて、疾病の早期発見や予防が進められています。
このようなデータ活用・データ分析には、「機械学習」が広く用いられます。機械学習によって、膨大なデータを学習し、事象の予測や分類ができるというわけです。しかし、そのためにまずはデータを適切に扱う技術の習得が必要となります。本講義では、機械学習を用いた高度なデータ分析に繋がる、さまざまなデータ活用に関する技術を学びます。
1.2 データを扱うプログラミング¶
データを扱うにあたり、Python や R などのプログラミング言語が広く活用されています。特に Python は、短いコードで膨大なデータを効率的に処理・分析・可視化できるため、その重要性は年々高まっています。
1.3 Python の復習¶
データ活用に関するプログラミングを学ぶ前に、Python の文法について簡単な復習をしておきましょう。
1.3.1 変数と基本データ型¶
Python を含む多くのプログラミング言語において、データは 変数 に格納して扱います。変数とは、さまざまな情報を保存するための入れ物のようなもので、基本的なデータ型に「整数」「浮動小数点数」「文字列」「論理値」があります。
数値型のデータは、算術演算子を用いて演算を行うことができます。
基本的な算術演算子¶
式 | 演算子 | 説明 |
---|---|---|
x + y | 加算演算子 | x に y を加えた値 |
x - y | 減算演算子 | x から y を引いた値 |
x * y | 乗算演算子 | x に y を乗じた値 |
x / y | 除算演算子 | x を y で割った値 |
x % y | 剰余演算子 | x を y で割った余り |
x ** y | べき乗演算子 | x を y 乗した値 |
1.3.2 リストと辞書¶
複数のデータを扱いたいときには、「リスト」 (list
) や「辞書」 (dict
) といったデータ型を使用します。
リスト¶
リストは、順番のあるデータの集まり です。インデックス(何番目の要素かを表す数字)で参照できることと、変更(追加・削除・更新)ができる性質を持ちます。
辞書¶
辞書は、キーと値がペアとなったデータ構造(順序あり) です。キーを用いることで、値を高速に参照することができます。
ほかにも、要素の変更ができない「タプル」 (tuple
)や、重複のないデータを扱う「集合」(set
) がありますが、はじめのうちは「リスト」と「辞書」だけ扱うことができれば十分です。
1.3.3 if 文(条件分岐)¶
if
文は、条件に応じて処理を分岐させることができる構文です。複数の分岐を作りたい場合は、elif
や else
を使用します。
score = 85
if score >= 90:
print("Excellent")
elif score >= 80:
print("Good")
else:
print("Bad")
比較演算子¶
式 | 説明 |
---|---|
x < y | x が y より小さいと True、そうでないと False |
x > y | x が y より大きいと True、そうでないと False |
x <= y | x が y 以下であれば True、そうでないと False |
x >= y | x が y 以上であれば True、そうでないと False |
x == y | x が y と等しいと True、そうでないと False |
x != y | x が y と等しくないと True、そうでないと False |
論理演算子¶
式 | 説明 |
---|---|
X and Y | X と Y がいずれも True であれば True |
X or Y | X と Y のいずれかが True であれば True |
not X | X が True であれば False、False であれば True |
1.3.4 繰り返し処理¶
同じ処理を複数回行うときには、for
文や while
文を使います。
for 文¶
for
文は、リストの中身を 1 つずつ処理する際に、if
文と組み合わせてよく使用されます。
# リストの中身を 1 つずつ処理する例
for n in [1, 2, 3, 4, 5]:
print(n)
# 数値の範囲を range で指定する例
for i in range(30):
if i % 3 == 0:
print(f"{i}!")
else:
print(i)
while 文¶
while
文は、特定の条件を満たす間、同じ処理を繰り返したいときに使用されます。
途中でループを抜け出したいときには break
文、ループの判定に戻りたいときは continue
文を使います。
# n (>2) が素数かどうかを判定するプログラム
n = 23
i = 2
while i < n:
if n % i == 0:
print(f"{n} は素数ではない")
break
i = i + 1
if i == n:
print(f"{n} は素数")
Warning
条件を間違えて無限ループに陥るとプログラムが固まってしまうので注意してください。
1.3.5 関数¶
何度も使う可能性のある一連の処理は、関数 にまとめることで、プログラムをスッキリ整理することができます。関数は def 関数名(引数):
といった形で定義し、return
で結果を返します。慣れないうちは、無理に関数を使わなくても全く問題ありません。慣れてきたら、より洗練されたプログラムにするために、関数を使うことを検討してください。
# 足し算を行う関数
def add(a, b):
return a + b
print(add(3, 5)) # 8
# 3 の倍数かどうかを判定する関数
def is_3x(n):
return n % 3 == 0
print(is_3x(42)) # True
# リストの平均値を計算する関数
def calc_average(numbers):
return sum(numbers) / len(numbers)
print(calc_average([10, 20, 30, 40])) # 25.0
より包括的な概念として クラス がありますが、これもはじめのうちは意識しなくて問題ありません。
1.3.6 ライブラリの使い方¶
Python では多くの便利な機能が「ライブラリ」として提供されています。指す対象の広さに応じて「パッケージ」「モジュール」とも呼ばれますが、便利なツール群ということで言葉の違いはあまり気にしなくても問題ありません。いずれも import
文で使います。
import numpy as np # 数値計算ライブラリ
import pandas as pd # データ処理ライブラリ
import matplotlib.pyplot as plt # 可視化モジュール
この例のように、import ... as ...
とすることで、長いライブラリ名やモジュール名を省略することができます。as
を使わずに使用することもできますが、matplotlib.pyplot
なんて毎回書いていられないので、plt
にして簡潔にしているというわけです。
なお、ここで例にあげた 3 つのライブラリ(numpy
, pandas
, matplotlib
) はデータ分析における三種の神器とも呼ばれ、この 3 つだけで基本的なデータ分析の 8 割をカバーできるといっても過言ではありません。
それぞれの詳しい使い方については、第 2 回目以降で説明します。
演習¶
演習 1-1
1~50 までの数を順番に表示し、3 の倍数のときは数字の後ろに「!」、5 の倍数のときは数字の後ろに「?」、両方の倍数なら数字の後ろに「!?」をつけるプログラムを作成してください。
演習 1-2
Matplotlib.pyplot を用いて、0 から 2π までの sin カーブを描いてください。