機械学習概論/演習
をテンプレートにして作成
開始行:
[[第3回]]
* 第3回演習課題 [#w3bb626b]
[[課題提出]]のページを熟読したうえで,以下の演習課題に取...
** 基礎問題 [#e586be99]
''Q3-1【どのタイプの機械学習?】''
- 次のRQは,以下に示すどの種類の機械学習で解くのが最もふ...
1: 教師あり学習(分類),2:教師あり学習(回帰),3: 教...
- RQ1: ウェアラブルセンサで測定した加速度のデータから,そ...
- RQ2: 救急搬送のデータと気象データから,明日の熱中症の搬...
- RQ3: 身長と体重のデータから,その人の[[肥満度:https://j...
- RQ4: 多数の顧客の購買履歴から,どのような購買層が存在す...
- RQ5: 顧客との営業活動データから,その顧客が見込み顧客か...
- RQ6: 国語,数学,社会,理科,英語の5科目の得点から,理...
- RQ7: 大きさ,重さ,色,カラット数からダイヤの相場を求める
- RQ8: 楽曲データからその楽曲のテンポを求める
** 応用問題 [#a86c4d07]
''Q3-2【迷惑メールをみつけよう】''
- 以下に示すデータを利用し,迷惑メールを検出する機械学習...
-- [[【迷惑メール (spam-base) データセット】>データ#u4f88...
-- https://www2.cmds.kobe-u.ac.jp/~masa-n/dshandson/spam-...
【データの説明】
・各行が1通のメールに対応し,そのメールから観測された特...
・特徴量は,以下の通り.
- (0~53列) 列名にある単語(または文字)の数が,そ...
- (54~56列) メール中で連続する大文字の平均長,最大...
・正解データ(ラベル)は57列. 1 (迷惑メール), 0 (迷惑...
- また,以下のコードスケルトンに沿って,Pythonプログラム...
-- 訓練データとテストデータの比率を60:40になるよう分割し...
-- 使用する機械学習モデルは,決定木を使用し,木の最大深さ...
- コードスケルトン
################### ライブラリのインポート ############...
#いつものPandasとNumPyをインポート
import pandas as pd
import numpy as np
#日本語化MatplotLib
import matplotlib.pyplot as plt
#↓の1行は提出時にはコメントアウトしてください
!pip install japanize-matplotlib
import japanize_matplotlib
# Seabornをインポート
import seaborn as sns
# Pickleをインポート
import pickle
########################### データの取得 ###############...
#迷惑メールデータの取得
spam_data = pd.#########################################...
############################## 前処理 ##################...
#特徴量に指定する列名リスト.データの列名の0~56をスライ...
features = spam_data.columns[##:##]
#正解データに指定する列名.データの列名の最後のものをス...
target = spam_data.columns[##:##]
#特徴量
X = spam_data[features]
#正解データ
y = spam_data[target]
#X, yのそれぞれを訓練データとテストデータに分ける (訓練...
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(####...
###################### モデルの選択と学習 ##############...
#モデルの選択
from sklearn import tree
model = tree.DecisionTreeClassifier(max_depth=####, rand...
#モデルの学習(訓練データを使う)
model.#####(#######, ########)
#モデルの表示(オプショナル)
#tree.plot_tree(model, feature_names=features)
#plt.show()
########################### モデルの評価 ###############...
#分類精度
acc = model.score(#######, #######)
print(f"分類精度: {acc}")
#実際にあっているかどうかを確認してみる (オプショナル)
y_eval = pd.DataFrame()
y_eval["正解"] = y_test[target[0]]
y_eval["予測"] = model.#########(#######)
y_eval["結果"] = (y_eval["正解"] == y_eval["予測"])
print(y_eval)
#混同行列を表示する
from sklearn.metrics import confusion_matrix, ConfusionM...
cm = confusion_matrix(#########, model.##########(######...
print("混同行列:\n", cm)
#プロットする(オプショナル)
#disp = ConfusionMatrixDisplay(confusion_matrix=cm, disp...
''Q3-3【不動産価格を推定しよう】''
- 以下に示すデータを利用し,不動産価格(坪単価)を予測す...
-- [[【不動産 (realestate) データセット】>データ#o0b3640c]]
-- https://www2.cmds.kobe-u.ac.jp/~masa-n/dshandson/reale...
【データの説明】
・台湾・新北市の不動産に関するデータセット
・各行が1つの不動産物件に対応し,その物件の特徴量と正解...
【データ項目】
0: No: 物件の番号
1: 取引日:年.月日オフセット(1/1を0.0, 12/31を1.0とした...
2: 築年数: 物件の築年数
3: 駅距離:最寄りの地下鉄駅までの距離(メートル)
4: コンビニ数:徒歩圏内にあるコンビニの数
5: 緯度:物件の場所の緯度
6: 経度:物件の場所の経度
7: 坪単価:物件の1坪(3.3平米)当たりの不動産価格(1万台湾...
- 以下の指示に従ってPythonプログラムを作成しなさい
-- 訓練データとテストデータの比率を60:40になるよう分割し...
-- 使用する機械学習モデルは,線形回帰を使用しなさい
-- モデル構築に使用する特徴量は,No(物件の番号)以外,すべ...
-- 作成したモデルの回帰係数と切片を求め,モデルの説明をし...
-- 作成したモデルの決定係数を求めなさい
-- 作成したモデルの平均絶対誤差を求めなさい
-- 上記Q3-3で作成したプログラムのipynbファイルを提出しな...
** 発展問題 [#saf97b3d]
''Q3-4【モデルをチューニングしてみよう】''
- Q3-3で構築した不動産価格のモデルについて,決定係数を向...
-- チューニングの方法として,例えばデータから外れ値を取り...
-- レポートには,どのような工夫をして,結果的に決定係数が...
終了行:
[[第3回]]
* 第3回演習課題 [#w3bb626b]
[[課題提出]]のページを熟読したうえで,以下の演習課題に取...
** 基礎問題 [#e586be99]
''Q3-1【どのタイプの機械学習?】''
- 次のRQは,以下に示すどの種類の機械学習で解くのが最もふ...
1: 教師あり学習(分類),2:教師あり学習(回帰),3: 教...
- RQ1: ウェアラブルセンサで測定した加速度のデータから,そ...
- RQ2: 救急搬送のデータと気象データから,明日の熱中症の搬...
- RQ3: 身長と体重のデータから,その人の[[肥満度:https://j...
- RQ4: 多数の顧客の購買履歴から,どのような購買層が存在す...
- RQ5: 顧客との営業活動データから,その顧客が見込み顧客か...
- RQ6: 国語,数学,社会,理科,英語の5科目の得点から,理...
- RQ7: 大きさ,重さ,色,カラット数からダイヤの相場を求める
- RQ8: 楽曲データからその楽曲のテンポを求める
** 応用問題 [#a86c4d07]
''Q3-2【迷惑メールをみつけよう】''
- 以下に示すデータを利用し,迷惑メールを検出する機械学習...
-- [[【迷惑メール (spam-base) データセット】>データ#u4f88...
-- https://www2.cmds.kobe-u.ac.jp/~masa-n/dshandson/spam-...
【データの説明】
・各行が1通のメールに対応し,そのメールから観測された特...
・特徴量は,以下の通り.
- (0~53列) 列名にある単語(または文字)の数が,そ...
- (54~56列) メール中で連続する大文字の平均長,最大...
・正解データ(ラベル)は57列. 1 (迷惑メール), 0 (迷惑...
- また,以下のコードスケルトンに沿って,Pythonプログラム...
-- 訓練データとテストデータの比率を60:40になるよう分割し...
-- 使用する機械学習モデルは,決定木を使用し,木の最大深さ...
- コードスケルトン
################### ライブラリのインポート ############...
#いつものPandasとNumPyをインポート
import pandas as pd
import numpy as np
#日本語化MatplotLib
import matplotlib.pyplot as plt
#↓の1行は提出時にはコメントアウトしてください
!pip install japanize-matplotlib
import japanize_matplotlib
# Seabornをインポート
import seaborn as sns
# Pickleをインポート
import pickle
########################### データの取得 ###############...
#迷惑メールデータの取得
spam_data = pd.#########################################...
############################## 前処理 ##################...
#特徴量に指定する列名リスト.データの列名の0~56をスライ...
features = spam_data.columns[##:##]
#正解データに指定する列名.データの列名の最後のものをス...
target = spam_data.columns[##:##]
#特徴量
X = spam_data[features]
#正解データ
y = spam_data[target]
#X, yのそれぞれを訓練データとテストデータに分ける (訓練...
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(####...
###################### モデルの選択と学習 ##############...
#モデルの選択
from sklearn import tree
model = tree.DecisionTreeClassifier(max_depth=####, rand...
#モデルの学習(訓練データを使う)
model.#####(#######, ########)
#モデルの表示(オプショナル)
#tree.plot_tree(model, feature_names=features)
#plt.show()
########################### モデルの評価 ###############...
#分類精度
acc = model.score(#######, #######)
print(f"分類精度: {acc}")
#実際にあっているかどうかを確認してみる (オプショナル)
y_eval = pd.DataFrame()
y_eval["正解"] = y_test[target[0]]
y_eval["予測"] = model.#########(#######)
y_eval["結果"] = (y_eval["正解"] == y_eval["予測"])
print(y_eval)
#混同行列を表示する
from sklearn.metrics import confusion_matrix, ConfusionM...
cm = confusion_matrix(#########, model.##########(######...
print("混同行列:\n", cm)
#プロットする(オプショナル)
#disp = ConfusionMatrixDisplay(confusion_matrix=cm, disp...
''Q3-3【不動産価格を推定しよう】''
- 以下に示すデータを利用し,不動産価格(坪単価)を予測す...
-- [[【不動産 (realestate) データセット】>データ#o0b3640c]]
-- https://www2.cmds.kobe-u.ac.jp/~masa-n/dshandson/reale...
【データの説明】
・台湾・新北市の不動産に関するデータセット
・各行が1つの不動産物件に対応し,その物件の特徴量と正解...
【データ項目】
0: No: 物件の番号
1: 取引日:年.月日オフセット(1/1を0.0, 12/31を1.0とした...
2: 築年数: 物件の築年数
3: 駅距離:最寄りの地下鉄駅までの距離(メートル)
4: コンビニ数:徒歩圏内にあるコンビニの数
5: 緯度:物件の場所の緯度
6: 経度:物件の場所の経度
7: 坪単価:物件の1坪(3.3平米)当たりの不動産価格(1万台湾...
- 以下の指示に従ってPythonプログラムを作成しなさい
-- 訓練データとテストデータの比率を60:40になるよう分割し...
-- 使用する機械学習モデルは,線形回帰を使用しなさい
-- モデル構築に使用する特徴量は,No(物件の番号)以外,すべ...
-- 作成したモデルの回帰係数と切片を求め,モデルの説明をし...
-- 作成したモデルの決定係数を求めなさい
-- 作成したモデルの平均絶対誤差を求めなさい
-- 上記Q3-3で作成したプログラムのipynbファイルを提出しな...
** 発展問題 [#saf97b3d]
''Q3-4【モデルをチューニングしてみよう】''
- Q3-3で構築した不動産価格のモデルについて,決定係数を向...
-- チューニングの方法として,例えばデータから外れ値を取り...
-- レポートには,どのような工夫をして,結果的に決定係数が...
ページ名: