Menu
CoddyTech

최소제곱 적합

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

선을 추측하는 작업은 끝없이 계속될 수 있습니다. np.polyfit(x, y, 1)은 가장 적합한 선을 한 번에 찾습니다. 잔차 제곱합이 가장 작은 선입니다. 여기 폭풍이 내린 눈의 깊이가 있습니다.

hours = np.array([1, 2, 3, 5, 6])
depth = np.array([14, 22, 35, 52, 61])
slope, intercept = np.polyfit(hours, depth, 1)
print(np.round(slope, 2), np.round(intercept, 2))

이것은 9.5 4.5를 출력합니다. 시간당 눈이 약 9.5cm 더 쌓이고, 0시간일 때는 4.5cm라는 뜻입니다. 이보다 오차가 작은 다른 선은 없습니다:

시간에 따른 적설량을 나타내는 점 다섯 개와 세 개의 선: 잔차 제곱합이 159와 18인 점선 추정선 두 개, 그리고 잔차 제곱합이 6.5인 굵은 polyfit 선

1은 직선을 요청하며, x가 먼저 옵니다. 이것은 선형 회귀로, 섹션 3에서 학습시키는 첫 번째 모델입니다.

challenge icon

챌린지

중급

드론 제조업체는 어떤 측정값이 비행 시간을 가장 잘 예측하는지 알고 싶어 합니다. drones.csv에는 15회의 비행 데이터가 있습니다: payload_g, wind_kmh, flight_min. 시작 코드에서 파일을 불러오고 ssr(x, y, slope, intercept)를 정의합니다.

  1. columns의 각 열에 대해 해당 열로 flight_min을 예측하는 직선을 맞춥니다.
  2. 아래와 같이 방정식과 SSR을 출력합니다: 기울기는 소수점 이하 3자리, 절편과 SSR은 소수점 이하 2자리까지 표시합니다.
  3. SSR이 더 작은 열을 출력합니다.

다른 드론을 대상으로:

payload_g: flight_min = -0.001 * payload_g + 21.55, SSR 164.94
wind_kmh: flight_min = -0.481 * wind_kmh + 28.13, SSR 9.1
Better predictor: wind_kmh

직접 해보기

import numpy as np
import pandas as pd


# 직선 slope * x + intercept의 잔차 제곱합을 반환합니다(레슨 35)
def ssr(x, y, slope, intercept):
    return ((y - (slope * x + intercept)) ** 2).sum()


drones = pd.read_csv("drones.csv")
columns = ["payload_g", "wind_kmh"]

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

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

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

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