Menu
CoddyTech

정규 곡선

Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 9번째.

키, 시험 점수, 쌀 포대 무게 등 많은 측정값은 정규 분포, 즉 종 모양 곡선을 따릅니다. 한 기계에서 나온 포대 500개:

쌀 포대 500개의 무게를 나타내는 밀도 히스토그램 위에 주황색 종 모양 곡선이 겹쳐져 있습니다. 점선은 곡선의 꼭대기에 있는 평균 1000 g을 표시하고, 길이 8 g인 화살표는 폭인 표준 편차를 표시합니다.

두 개의 숫자로 그릴 수 있습니다. 평균은 꼭짓점을 정하고, 표준 편차는 너비를 정합니다. 과학 계산 라이브러리인 SciPy는 공식을 알고 있습니다:

from scipy import stats

ax.hist(bags, bins=16, density=True)
xs = np.linspace(bags.min(), bags.max(), 100)
ax.plot(xs, stats.norm.pdf(xs, bags.mean(), bags.std()))

stats.norm.pdf(x, mean, std)는 x에서의 곡선 높이이며, x는 단일 값이거나 배열입니다. 곡선 아래 면적은 밀도 히스토그램과 마찬가지로 1이므로 둘 다 하나의 차트에 표시할 수 있습니다.

일부 모델은 대략 정규 분포를 따르는 특성을 선호합니다. 이 차트는 이를 확인합니다.

challenge icon

챌린지

쉬움

볼트의 길이는 50 mm여야 합니다. 시작 코드는 측정한 길이 240개를 lengths에 저장하고 차트를 설정합니다. 정규 곡선과 비교해 보세요:

  1. 아래와 같이 평균과 표준편차(np.std)를 소수점 이하 2자리까지 반올림하여 출력합니다.
  2. bins=15로 밀도 히스토그램을 그립니다.
  3. 그 위에 적합한 곡선을 그립니다. 가장 짧은 볼트부터 가장 긴 볼트까지 100개의 점을 사용합니다.
  4. 차트를 표시합니다.

다른 배치의 경우:

Fitted curve: mean 49.99 mm, std 0.42 mm

그리고 차트:

약 49~51 mm 길이의 볼트 180개를 나타내는 밀도 히스토그램과, 50 근처에서 정점을 이루는 매끄러운 종 모양 곡선

직접 해보기

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

# 아래 줄은 변경하지 마세요
rng = np.random.default_rng(31)
lengths = np.round(rng.normal(50, 0.4, size=240), 2)

fig, ax = plt.subplots()
ax.set_title("Bolt Lengths")
ax.set_xlabel("Length (mm)")
ax.set_ylabel("Density")

# 아래에 코드를 작성하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

머신러닝을 위한 통계의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러