見出し画像

Pythonを用いた機械学習12日目

本日は、練習問題(生徒のテストの点数という模擬データの偏差値を求める)(①)ことと、練習問題(パラメトリックな手法を使って、ランダムに生成した点が扇型に入っている割合を求める)(②)に取り組む。

前回の内容はこちらからどうぞ。


1.模擬データの偏差値を求める

問題)学校でテストを実施したところ、20人の生徒の点数は以下のとおりになった。これらの生徒の偏差値を求めよ。

スクリーンショット 2020-05-29 21.48.59

ヒント)偏差値は、平均50、標準偏差10である

解答例)

>>> import numpy as np
>>>
>>> a = [80,78,84,69,77,73,88,64,91,72,75,62,90,83,92,60,76,89,68,70]
>>> 
>>> def standardize(x):
...     return (x - np.mean(x)) / np.std(x) * 10 + 50
... 
>>> print(standardize(a))
[53.04841382 50.98169259 57.18185629 41.68144703 49.94833197 45.8148895
61.31529876 36.51464394 64.41538061 44.78152888 47.88161073 34.44792271
63.38201999 56.14849567 65.44874123 32.38120148 48.91497135 62.34865938
40.64808641 42.71480765]
>>> 



2.ランダムに生成した点が扇型に入っている割合を求める

問題)0〜1までの数を2つ生成し、x座標とy座標とする。このペアを1000個生成し、図の扇型に入っている割合を求めるプログラムを作成せよ。また、生成する数を増やしたとき、その割合を4倍した値が近づく値を調べよ。

スクリーンショット 2020-05-29 22.19.07

※扇型の中に入っているかどうかを調べるには次の式で計算できる。

画像2

ヒント)xとyを同じ数ずつ乱数生成するからn=1000を作っておいてfor文で乱数生成する。

解答例)

>>> import random
>>> 
>>> n = 1000
>>> cnt = 0
>>> for i in range(n):
...     x = random.random()
...     y = random.random()
...     if x * x + y * y <= 1:
...         cnt += 1
... 
>>> print(cnt / n)
0.771
>>> 


確率と統計はひととおり終わったので、次回からはベクトルと行列について学んでいく。



よろしければサポートお願いします。いただいたサポートを皆さんに還元していきたいと思っております。