Zスコア
CoddyのMachine Learningジャーニー「機械学習のための統計」セクションの一部。レッスン 11/64。
ある生徒の化学の得点は78点、歴史の得点は85点でした。どちらのほうが良いでしょうか?それぞれのクラスの標準偏差で各得点を測りましょう:
その距離がzスコアです。z = (x - mean) / std。化学:(78 - 70) / 4は2.0です。歴史:(85 - 80) / 10は0.5です。78の勝ちです。
配列全体において、負の z は平均を下回ることを意味します:
temps = np.array([12, 15, 9, 18, 16])
print(np.round((temps - temps.mean()) / temps.std(), 2))これは次のように出力されます:
[-0.63 0.32 -1.58 1.26 0.63]Zスコアは単位にかかわらず、平均0、標準偏差1という共通の尺度を持ちます。そのため、数値の大きさがどれほど違っていても、モデルでは年齢と所得が同じ重みで扱われます。
チャレンジ
簡単ゲームセンターのパズルゲームとレーシングゲームでは、スコアの尺度が大きく異なります。puzzleとracingには、それぞれ常連客12人のスコアが格納されています。新規客が両方をプレイしました。プログラムはその人のパズルのスコアを読み取り、次にレーシングのスコアを読み取ります。
- 各スコアについて、そのゲーム内でのzスコアを小数点以下2桁に丸めて出力します(
.std()を使用)。 - どちらの結果がより印象的かを出力します。
入力が790と16900の場合:
Puzzle z: 1.45
Racing z: 2.0
More impressive: Racing自分で試してみよう
import numpy as np
puzzle = np.array([640, 720, 580, 810, 690, 750, 600, 700, 660, 730, 620, 780])
racing = np.array([12400, 15800, 13900, 11200, 16500, 14100,
12800, 15100, 13300, 14700, 12100, 14600])
p = int(input())
r = int(input())
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
機械学習のための統計のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ