ae-2.Python プログラミングとデー
タ分析の基礎:
Trinket を活用した実践的入門
1
金子邦彦
AI演習)(全15回)
https://www.kkaneko.jp/ai/ae/index.html
人工知能(AI)の学習のための指針
1. 実践重視 AIツールを実際に使用し、機能に慣れる
2. エラーを恐れない 実行においては、エラーの発生の可
能性がある.エラーを恐れず,むしろ学習の一部として
捉えるポジティブさが大切.
3. 段階的学習:基礎から応用へと段階的に学習を進め,AI
の可能性を前向きに捉える
2
アウトライン
1. Python プログラミングの基礎
2. 変数,代入
3. オブジェクト,メソッド
4. プログラミングの楽しさと達成
5. Python の外部ライブラリの概
要と活用
6. 実データを用いた散布図の作成
7. 人工知能でのプログラミングの
重要性
3
Python は多くの
人々に利用されてい
プログラミング言
の1つ
読みやすさ書きや
すさ幅広い応用範
が特徴
4
Python
Python 言語が広く使用されている理由
文法のシンプルさ
Python は,直感的で読みやすい文法
例えば、print で簡単に出力できる、if else 条件分岐for
while 繰り返し(ループ)
拡張性
多岐にわたる分野で利用が可能
例えば、関数やクラスを定義するため def class継承オブ
ジェクトの属性名と値を操作するため super vars などがある。
柔軟性
シンプルなスクリプトも、高度なプログラムも作成可能
オブジェクト指向の機能を持ち、__init__ self のようなキーワード
を使用してクラスを利用できる。
5
trinket
Trinket オンライン PythonHTML 等の学習サイト
ブラウザで動作
有料の機能と無料の機能がある
自分が作成した Python プログラムを公開し、他の人に実
行してもらうことが可能(そのとき、書き替えて実行も可
能)
Python の標準機能を登載、その他、次の外部ライブラリ
がインストール済み
matplotlib.pyplot, numpy, processing, pygal
6
trinket Python, HTML などのプログラムを書き実行できる
サイト
https://trinket.io/python/0fd59392c8
のように、違うプログラムには違う URL が割り当てられる
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
trinket でのプログラム実行
7
ソースコードの
メイン画面
実行結果
実行、STOP ボタン
2-1. Python プログラミン
グの基礎
8
変数,代入
変数:プログラム内で名前を付けて利用するオブジェ
クトで,値を保存し,後から参照できる
代入:「x = 100」のように書くことで,x という名前
の変数に、値 100 が保存される
9
x = 100
オブジェクトとメソッド
オブジェクト:コンピュータでの操作や処理の対象と
なるもの
メソッド: オブジェクトに属する機能や操作.オブジェ
クトがもつ能力に相当する
引数:メソッドが行う操作の詳細に関する情報.
ソッド呼び出しのときに、引数を指定できる
t.goto(0,100)
10
t.goto(0,100) t オブジェクト
goto(0,100) メソッド
間を「.」で区切っている
引数
インデント(字下げ)によるブロックの区切り
(通常「タブ」または「4つの半角スペース」)
コメント:行の先頭に「#
空白行:プログラムを読みやすくするために挿入可能
Python プログラムの書き方(コーディングス
タイル)
11
import turtle
for i in range(4):
turtle.forward(100)
turtle.right(90)
turtle.done()
空白行
空白行
インデント(字下げ)
2-2. 変数,代入
12
変数,代入
変数:プログラム内で名前を付けて利用するオブジェ
クトで,値を保存し,後から参照できる
代入:「x = 100」のように書くことで,x という名前
の変数に、値 100 が保存される
13
x = 100
trinket
Trinket オンライン PythonHTML 等の学習サイト
ブラウザで動作
有料の機能と無料の機能がある
自分が作成した Python プログラムを公開し、他の人に実
行してもらうことが可能(そのとき、書き替えて実行も可
能)
Python の標準機能を登載、その他、次の外部ライブラリ
がインストール済み
matplotlib.pyplot, numpy, processing, pygal
14
trinket Python, HTML などのプログラムを書き実行できる
サイト
https://trinket.io/python/0fd59392c8
のように、違うプログラムには違う URL が割り当てられる
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
trinket でのプログラム実行
15
ソースコードの
メイン画面
実行結果
実行、STOP ボタン
演習.変数と代入
16
1.基本的な変数の使用
trinket の次のページを開く
https://trinket.io/python/abafd851480a
変数
値を代入する方法
print() 関数を使って変数の内容を表示する方法
実行結果が,次のように表示されることを確認
17
実行が開始しないときは、「実行ボタ」で実行
ソースコードを書き替えて再度実行ることも可能
実行、STOP ボタン
2.基本的な変数の使用
trinket の次のページを開く
https://trinket.io/python/9870e86d63b9
複数の変数を使って簡単な計算を行う
print() 関数を使って変数の内容を表示する
実行結果が,次のように表示されることを確認
18
実行が開始しないときは、「実行ボタ」で実行
ソースコードを書き替えて再度実行ることも可能
実行、STOP ボタン
3.変数の更新
trinket の次のページを開く
https://trinket.io/python/b869619b0874
既存の変数に新しい値を代入して更新
変数の値が変更可能
実行結果が,次のように表示されることを確認
19
実行が開始しないときは、「実行ボタ」で実行
ソースコードを書き替えて再度実行ることも可能
実行、STOP ボタン
4.ユーザー入力と変数
trinket の次のページを開く
https://trinket.io/python/45f0bed92360
input() 関数を使ってユーザーからの入力を受け取る
ユーザー入力を変数に保存
対話的なプログラムの基本
実行結果が,次のように表示されることを確認
20
実行が開始しないときは、「実行ボタ」で実行
ソースコードを書き替えて再度実行ることも可能
実行、STOP ボタン
5.複数の変数
trinket の次のページを開く
https://trinket.io/python/abafd851480a
複数の変数を組み合わせて使用
表示の際に,2つの変数の値を表示
実行結果が,次のように表示されることを確認
21
実行が開始しないときは、「実行ボタ」で実行
ソースコードを書き替えて再度実行ることも可能
実行、STOP ボタン
2-3. オブジェクト,メ
ソッド
22
オブジェクトとメソッド
オブジェクト:コンピュータでの操作や処理の対象と
なるもの
メソッド: オブジェクトに属する機能や操作.オブジェ
クトがもつ能力に相当する
引数:メソッドが行う操作の詳細に関する情報.
ソッド呼び出しのときに、引数を指定できる
t.goto(0,100)
23
t.goto(0,100) t オブジェクト
goto(0,100) メソッド
間を「.」で区切っている
引数
タートルグラフィックス
カーソルを使って絵を描く
タートルグラフィックスを用いた演習により、プログラム
によって図形を描画する.それを通して、プログラムの
作を視覚的に理解
論理的思考力や課題解決力の向上にもつながる
24
(, 0)
(, 100)
(100, 0)
タートルグラフィックスの機能をインポー
トする「import turtle」が必要
タートルグラフィックス入門
主なメソッド
goto(<横方向の値>,<縦方向の値> 移動
forward(<移動量>) 前進
backword(<移動量>) 後退
right(<角度>) 右回りに回転
left(<角度>) 左回りに回転
25
メソッド
オブジェクト
メソッドは、オブジェクト
が持つ機能を呼び出すため
のもの
goto」は指定した座標へ
の移動
オブジェクトとメソッド
26
オブジェクトが動く
import turtle
t = turtle.Turtle()
t.goto(0,100)
インポート
オブジェクト生成。t へのセット。
(0, 100) への移動
実行結果
(0, 100)
(0, 0)
最初の位置は
(0, 0)
オブジェクトとメソッド
27
import turtle
t = turtle.Turtle()
t.goto(0,100)
t.goto(100,0)
インポート
オブジェクト生成。t へのセット。
(0, 100) への移動
(100, 0) への移動
実行結果
(100, 0)
(0, 100)
(0, 0)
最初の位置は
(0, 0)
オブジェクトが動く
28
亀(タール)
の最初の位置
(0, 0)
(プラスの数, 0)
(マイナスの数, 0)
(0, プラスの数)
(0, マイナスの数)
メソッド goto の引数となる
縦方向の値と,横方向の値
演習.タートルグラフィッ
クス
29
import turtle
t = turtle.Turtle()
t.goto(0,100)
t.goto(100,0)
30
ライブラリのインポート
オブジェクト生成。t へのセット。
(0, 100) への移動
(100, 0) への移動
実行結果
(100, 0)
(0, 100)
(0, 0)
最初の位置は
(0, 0)
trinket の次のページを開く
https://trinket.io/python/f29bfe71cd
実行結果が,次のように表示されることを確認
31
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
実行、STOP ボタン
次のように書き換えて再実行し、結果が変わる
ことを確認
32
実行、STOP ボタン
書き換え
33
亀の最初の位
置は (0, 0)
(プラスの数, 0)
(マイナスの数, 0)
(0, プラスの数)
(0, マイナスの数)
次を参考に、自分で引数を書き替えたり、プロ
グラム内にt.goto(<引数>)」を増やして思い通
りの図形を目指す。
ここまでのまとめ
変数:プログラム内で名前を付けて値を保存し参照できる
オブジェクト
オブジェクト:コンピュータでの操作や処理の対象となる
ものである.
メソッドオブジェクトが持つ機能や操作を表すもの.
: t.goto(100,0)では t はオブジェクトgoto はメソッド
引数:メソッドには,操作の詳細を指定するための引数を
設定できる.
例:t.goto(100,0) では、引数は「100,0
Python では,インデントを適切に使用する.
プログラムの修正や改良を繰り返し行うことで,目的の動
作を実現できる.
34
2-4. プログラミングの楽
しさと達成感
35
36
ソースコードは,プログラミ
ング言語で書かれたプログラ
のもの
人間も読み書き編集できる
ソースコードにより,プログ
ラムの動作を理解し,必要に
応じて改変できる
ソースコード
演習
図形のバリエーション
37
別のプログラムを試す.trinket の次のページを
開く
https://trinket.io/python/035810ce8d49
実行結果が,次のように表示されることを確認
38
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
実行、STOP ボタン
別のプログラムを試す.trinket の次のページを
開く
https://trinket.io/python/ddb861147133
実行結果が,次のように表示されることを確認
39
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
実行、STOP ボタン
演習
プログラミングの楽しさと
達成感
40
各自の自発的な演習、自己研鑽の時間
Pythonでグラフィックスを描く
資料のプログラムを動かし理解を深める
Pythonの基本を押さえる
オブジェクト、メソッド、引数
発想力、創造力
turtleライブラリを使用して、あなた自身がデザインした図
形を描く
自主性、自己研鑽力、自分なりに工夫したことを振り返る
説明されなかった機能(他の図形の書き方)などを自主的
調べ、理解し、自分で試してみるそして、自分なりに工
夫したことを振り返り、省察することで、さらに実力アップ。
41
①複雑な図形
https://trinket.io/python/5366def2f4
②色,円
https://trinket.io/python/f8cd554693
42
https://trinket.io/python/5366def2f4
import turtle
t = turtle.Turtle()
t.goto(0, 100)
t.goto(58, -80)
t.goto(-95, 30)
t.goto(95, 30)
t.goto(-58, -80)
t.goto(0, 100)
43
ライブラリのインポート
オブジェクト生成。t へのセット。
移動
実行結果
(0, 0)
最初の位置は
(0, 0)
https://trinket.io/python/f8cd554693
import turtle
t = turtle.Turtle()
colors = ["red", "green", "blue"]
for i in range(3):
t.color(colors[i])
t.circle(30)
t.forward(50)
44
ライブラリのインポート
オブジェクト生成。t へのセット。
色は、赤、緑、青
色を変える
半径30の円
前に50進む
実行結果
2-5. Python の外部ライ
ブラリの概要と活用
45
外部ライブラリとは
プログラミング言語の標準機能以外追加機能を
提供するプログラム集.(外部)
さまざまな目的のために何度も利用できる (ラ
イブラリ)
46
外部ライブラリの利用
インストール(使えるようにするための操作)が必要
操作コマンド例: pip install numpy
Trinket では,いくつかの外部ライブラリがインストール済
matplotlib.pyplot, numpy, processing, pygal
外部ライブラリの利用には,プログラム内でのインポート
が必要
Python では import を使用
例:import numpy as np
47
外部ライブラリ活用のメリット
プログラム作成の手間を削減
プログラムの量を削減
高度な機能の利用
効率的に動作する外部プログラムの利用
外部ライブラリの活用はソフトウェア開発に不可欠.効率的
で高機能なプログラム作成を可能にする.
48
代表的な外部ライブラリ例
NumPy:数値計算、配列
Matplotlib.Pyplot:グラフ、図表作成
49
演習.外部ライブラリの活
用例
50
trinket の次のページを開く
https://trinket.io/python/a563124a187c
実行結果が,次のように表示されることを確認
51
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
実行、STOP ボタン
trinket の次のページを開く
https://trinket.io/python/5830b6d18e9c
実行結果が,次のように表示されることを確認
52
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
実行、STOP ボタン
trinket の次のページを開く
https://trinket.io/python/9fe4ad1bb348
乱数は,予測不可能な数値のこと。
様々な用途(シミュレーション、ゲーム、暗号化
など)で使用される。
実行結果が,次のように表示されることを確認
53
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
実行、STOP ボタン
プログラム内でのインポート
例:import numpy as np
代表的な外部ライブラリ
NumPy:数値計算、配列処理
Matplotlib.Pyplot:グラフ、図表作成
54
ここまでのまとめ
外部ライブラリは,プログラミング言語の標準機能以外の
追加機能を提供するプログラム集である.
外部ライブラリの利用には,インストールプログラム内
でのインポートが必要である.
外部ライブラリを活用することで,プログラム作成の手間
と量を削減できる.
外部ライブラリにより,高度な機能を持ち,効率的に動作
するプログラムを利用できる.
外部ライブラリの活用は,効率的で高機能なプログラム開
発に不可欠である.
55
2-6. 実データを用いた散布
図の作成
56
散布図作成プログラムの例
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 4, 5]
plt.plot(x, y, 'o’)
plt.title('Scatter Plot’)
plt.show()
57
インポート
データの準備(xy
プロット
グラフのタイトル設定
グラフの表示
import matplotlib.pyplot as pltmatplotlib.pyplot
matplotlib.pyplot ライブラリを plt という別名でインポートする.
x = [1, 2, 3, 4, 5]
x座標のデータを含むリストを作成
y = [2, 4, 5, 4, 5]
y座標のデータを含むリストを作成
plt.plot(x, y, 'o’)
xyのデータポイントをプロット。‘o’は丸いマーカー(点)
指定
plt.title('Scatter Plot’)
グラフのタイトルを「Scatter Plot」に設定
plt.show()
作成したグラフを表示
58
プログラムを用いて散布図を作成することのメ
リット
データ処理の自動化
大量のデータセットを自動的に処理し、散布図を生成できる.
再現性の向上
同じ散布図を簡単に再現できる.
カスタマイズの柔軟性
グラフの細かな部分までカスタマイズできる.
プログラムを用いた散布図作成は、特に研究や大規模データ
分析の場面で有効
59
演習.散布図
60
# Matplotlibを使用して散布図を作成
import matplotlib.pyplot as plt
# データ点のx座標とy座標
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [2, 4, 5, 4, 5, 6, 7, 8, 7, 9]
plt.plot(x, y, 'rs') # 赤い四角のマーカーでプロット
plt.title('散布図の例’)
plt.show() # グラフを表示
61
trinket の次のページを開く
https://trinket.io/python/625038de4886
実行結果が,次のように表示されることを確認
62
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
実行、STOP ボタン
アヤメ属 (Iris)
多年草
世界に 150. 日本に 9.
がく片 Sepal
3個(大型で下に垂れる)
花弁 Petal
3個(直立する)
63
花弁
がく片
Iris データセット
【概要】
有名なデータセット.
3種類のアヤメ(Iris)の花の特徴を記録したもの.
データの内容
150個のサンプル(各種類50個ずつ).
4つの特徴(がく片の長さと幅、花弁の長さと幅).
3つの種類(品種:setosaversicolorvirginica).
64
Iris データセット
65
がく片(Sepal)
の長さと幅
花弁(Petal)
の長さと幅
種類
Iris データセット
150サンプルのうち先頭10
演習5.実データの散布図
66
Irisデータセットを散布図にする
1つめ:がく片の長さと幅
2つめ:花弁の長さと幅
Matplotlib ライブラリを使用
長さと幅の全体の分布を一目で把握できる
67
がく片の長さと幅
# Matplotlibを使用して散布図を作成
import matplotlib.pyplot as plt
# Irisデータセット
x = [5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.4, 4.8, 4.8, 4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5.1, 5.4, 5.1, 4.6, 5.1, 4.8, 5.0,
5.0, 5.2, 5.2, 4.7, 4.8, 5.4, 5.2, 5.5, 4.9, 5.0, 5.5, 4.9, 4.4, 5.1, 5.0, 4.5, 4.4, 5.0, 5.1, 4.8, 5.1, 4.6, 5.3, 5.0,
7.0, 6.4, 6.9, 5.5, 6.5, 5.7, 6.3, 4.9, 6.6, 5.2, 5.0, 5.9, 6.0, 6.1, 5.6, 6.7, 5.6, 5.8, 6.2, 5.6, 5.9, 6.1, 6.3, 6.1, 6.4, 6.6, 6.8,
6.7, 6.0, 5.7, 5.5, 5.5, 5.8, 6.0, 5.4, 6.0, 6.7, 6.3, 5.6, 5.5, 5.5, 6.1, 5.8, 5.0, 5.6, 5.7, 5.7, 6.2, 5.1, 5.7,
6.3, 5.8, 7.1, 6.3, 6.5, 7.6, 4.9, 7.3, 6.7, 7.2, 6.5, 6.4, 6.8, 5.7, 5.8, 6.4, 6.5, 7.7, 7.7, 6.0, 6.9, 5.6, 7.7, 6.3, 6.7, 7.2, 6.2,
6.1, 6.4, 7.2, 7.4, 7.9, 6.4, 6.3, 6.1, 7.7, 6.3, 6.4, 6.0, 6.9, 6.7, 6.9, 5.8, 6.8, 6.7, 6.7, 6.3, 6.5, 6.2, 5.9]
y = [3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.4, 3.0, 3.0, 4.0, 4.4, 3.9, 3.5, 3.8, 3.8, 3.4, 3.7, 3.6, 3.3, 3.4, 3.0,
3.4, 3.5, 3.4, 3.2, 3.1, 3.4, 4.1, 4.2, 3.1, 3.2, 3.5, 3.6, 3.0, 3.4, 3.5, 2.3, 3.2, 3.5, 3.8, 3.0, 3.8, 3.2, 3.7, 3.3,
3.2, 3.2, 3.1, 2.3, 2.8, 2.8, 3.3, 2.4, 2.9, 2.7, 2.0, 3.0, 2.2, 2.9, 2.9, 3.1, 3.0, 2.7, 2.2, 2.5, 3.2, 2.8, 2.5, 2.8, 2.9, 3.0, 2.8,
3.0, 2.9, 2.6, 2.4, 2.4, 2.7, 2.7, 3.0, 3.4, 3.1, 2.3, 3.0, 2.5, 2.6, 3.0, 2.6, 2.3, 2.7, 3.0, 2.9, 2.9, 2.5, 2.8,
3.3, 2.7, 3.0, 2.9, 3.0, 3.0, 2.5, 2.9, 2.5, 3.6, 3.2, 2.7, 3.0, 2.5, 2.8, 3.2, 3.0, 3.8, 2.6, 2.2, 3.2, 2.8, 2.8, 2.7, 3.3, 3.2, 2.8,
3.0, 2.8, 3.0, 2.8, 3.8, 2.8, 2.8, 2.6, 3.0, 3.4, 3.1, 3.0, 3.1, 3.1, 3.1, 2.7, 3.2, 3.3, 3.0, 2.5, 3.0, 3.4, 3.0]
# すべてのデータポイントを同じ色とマーカーでプロット
plt.plot(x, y, color='blue', marker='o')
plt.xlabel('がく片の長さ (cm)')
plt.ylabel('がく片の幅 (cm)')
plt.title('アヤメのがく片の大きさ')
plt.show() # グラフを表示
68
trinket の次のページを開く
https://trinket.io/python/41dee25e267f
実行結果が,次のように表示されることを確認
69
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
がく片の長さと幅
trinket の次のページを開く
https://trinket.io/python/8f33f7399c2d
実行結果が,次のように表示されることを確認
70
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
花弁の長さと幅
ここまでのまとめ
Matplotlib.pyplot グラフ作成に使用できる外部ライブラ
リ.
プログラム次第で,異なる散布図の表示も可能.
外部ライブラリの活用により,プログラム作成の手間を削
でき,高度な機能を利用することができる.
71
2-7. 人工知能でのプログラ
ミングの重要性
72
73
機械学習は,コンピュータデータ
を使用して学習することにより知的
能力を向上させる技術
情報の抽出:データの中からパ
ターンや関係性を自動で見つけ出
す能力
簡潔さ:人間が設定しなければな
らなかったルールを、自動で生成
できるようになる
限界の超越:他の方法では難し
かった課題でも、機械学習を用い
ることで解決策や視点を得られる
可能性がある
機械学習の特徴
機械学習の概要と応用
1. データの準備
例: Irisデータセットの花弁の長さと幅のデータ
2. 機械学習の活用
データを使って,コンピュータに学習させる.
3. 予測能力の獲得
学習の結果,新しいデータに対して予測ができるようになる.
例:花弁の長さが5.0cmの花に対して,その幅を1.7cmと予測
4. データ内の規則性やパターンの自動抽出
従来のプログラミングは「花弁の長さがXcmなら幅はYcmであ
る」といったルールを人間が記述する必要があった.
機械学習ではこれらの関係性を自動的に学習する
データから価値ある情報を抽出し,新たな知見を得ることが可能
になる.
74
演習6.データからのパ
ターンの抽出
ページ61~64
75
Irisデータセットを利用
花弁の長さと幅のデータから,パターンを抽出
「線形回帰」の技術を使用
「花弁の長さが5.0cmの花に対して,その幅を1.7cmと予
測」といった予測も可能になる
76
プログラム
import matplotlib.pyplot as plt
# Irisデータセット(花弁の長さと幅)
x = [1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1.5, 1.5, 1.6, 1.4, 1.1, 1.2, 1.5, 1.3, 1.4, 1.7, 1.5, 1.7, 1.5, 1.0, 1.7, 1.9, 1.6, 1.6, 1.5, 1.4, 1.6, 1.6, 1.5, 1.5, 1.4, 1.5, 1.2, 1.3, 1.5, 1.3, 1.5,
1.3, 1.3, 1.3, 1.6, 1.9, 1.4, 1.6, 1.4, 1.5, 1.4,
4.7, 4.5, 4.9, 4.0, 4.6, 4.5, 4.7, 3.3, 4.6, 3.9, 3.5, 4.2, 4.0, 4.7, 3.6, 4.4, 4.5, 4.1, 4.5, 3.9, 4.8, 4.0, 4.9, 4.7, 4.3, 4.4, 4.8, 5.0, 4.5, 3.5, 3.8, 3.7, 3.9, 5.1, 4.5, 4.5, 4.7, 4.4, 4.1, 4.0,
4.4, 4.6, 4.0, 3.3, 4.2, 4.2, 4.2, 4.3, 3.0, 4.1,
6.0, 5.1, 5.9, 5.6, 5.8, 6.6, 4.5, 6.3, 5.8, 6.1, 5.1, 5.3, 5.5, 5.0, 5.1, 5.3, 5.5, 6.7, 6.9, 5.0, 5.7, 4.9, 6.7, 4.9, 5.7, 6.0, 4.8, 4.9, 5.6, 5.8, 6.1, 6.4, 5.6, 5.1, 5.6, 6.1, 5.6, 5.5, 4.8, 5.4,
5.6, 5.1, 5.1, 5.9, 5.7, 5.2, 5.0, 5.2, 5.4, 5.1]
y = [0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.2, 0.1, 0.1, 0.2, 0.4, 0.4, 0.3, 0.3, 0.3, 0.2, 0.4, 0.2, 0.5, 0.2, 0.2, 0.4, 0.2, 0.2, 0.2, 0.2, 0.4, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.2, 0.2,
0.3, 0.3, 0.2, 0.6, 0.4, 0.3, 0.2, 0.2, 0.2, 0.2,
1.4, 1.5, 1.5, 1.3, 1.5, 1.3, 1.6, 1.0, 1.3, 1.4, 1.0, 1.5, 1.0, 1.4, 1.3, 1.4, 1.5, 1.0, 1.5, 1.1, 1.8, 1.3, 1.5, 1.2, 1.3, 1.4, 1.4, 1.7, 1.5, 1.0, 1.1, 1.0, 1.2, 1.6, 1.5, 1.6, 1.5, 1.3, 1.3, 1.3,
1.2, 1.4, 1.2, 1.0, 1.3, 1.2, 1.3, 1.3, 1.1, 1.3,
2.5, 1.9, 2.1, 1.8, 2.2, 2.1, 1.7, 1.8, 1.8, 2.5, 2.0, 1.9, 2.1, 2.0, 2.4, 2.3, 1.8, 2.2, 2.3, 1.5, 2.3, 2.0, 2.0, 1.8, 2.1, 1.8, 1.8, 1.8, 2.1, 1.6, 1.9, 2.0, 2.2, 1.5, 1.4, 2.3, 2.4, 1.8, 1.8, 2.1,
2.4, 2.3, 1.9, 2.3, 2.5, 2.3, 1.9, 2.0, 2.3, 1.8]
# 線形回帰の実装
def linear_regression(x, y):
n = len(x)
sum_x = sum(x)
sum_y = sum(y)
sum_xy = sum(xi * yi for xi, yi in zip(x, y))
sum_xx = sum(xi ** 2 for xi in x)
m = (n * sum_xy - sum_x * sum_y) / (n * sum_xx - sum_x ** 2)
b = (sum_y - m * sum_x) / n
return m, b
# 回帰分析
m, b = linear_regression(x, y)
# データポイントのプロット(plt.plot を使用)
plt.plot(x, y, 'bo', markersize=4, alpha=0.7, label='データポイント')
# 回帰直線の描画
min_x, max_x = min(x), max(x)
plt.plot([min_x, max_x], [m*min_x + b, m*max_x + b], color='red')
# グラフの設定
plt.xlabel('花弁の長さ (cm)')
plt.ylabel('花弁の幅 (cm)')
plt.title('アヤメの花弁: 長さと幅の関係')
# グラフの表示
plt.show()
77
trinket の次のページを開く
https://trinket.io/python/6bcf5472e3fd
実行結果が,次のように表示されることを確認
78
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
がく片の長さと幅
プログラミングのさまざまな応用分野
Web開発
フロントエンド(HTML, CSS, JavaScript),バックエンド
Python, Django, Flask
データ分析
ビッグデータ処理,統計分析,データビジュアライゼーショ
人工知能
自然言語処理,コンピュータビジョン,予測モデリング
ゲーム開発
2Dゲーム,3Dゲーム,モバイルゲーム
IoTInternet of Things
センサーデータの収集と分析,スマートホームシステム
サイバーセキュリティ
ネットワークセキュリティ,暗号化技術
79
まとめ
Python の基本的な文法と機能を学んだ
Trinket を用いて実際にプログラムを実行した
タートルグラフィックスを使用した
散布図(データ可視化)を体験した
プログラミングの重要性と応用可能性を理解した
80
次のステップへ
人工知能のさらなる探求,学び
AI演習」はプログラミングの初心者対象を前提
AI の動く仕組みの理解(AI はプログラムで動く)
AI プログラムは,人間が観察可能,編集による調
整可能である
そのために,プログラミングの入門知識が役立つ
81