최소제곱 적합
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라는 뜻입니다. 이보다 오차가 작은 다른 선은 없습니다:
1은 직선을 요청하며, x가 먼저 옵니다. 이것은 선형 회귀로, 섹션 3에서 학습시키는 첫 번째 모델입니다.
챌린지
중급드론 제조업체는 어떤 측정값이 비행 시간을 가장 잘 예측하는지 알고 싶어 합니다. drones.csv에는 15회의 비행 데이터가 있습니다: payload_g, wind_kmh, flight_min. 시작 코드에서 파일을 불러오고 ssr(x, y, slope, intercept)를 정의합니다.
columns의 각 열에 대해 해당 열로flight_min을 예측하는 직선을 맞춥니다.- 아래와 같이 방정식과 SSR을 출력합니다: 기울기는 소수점 이하 3자리, 절편과 SSR은 소수점 이하 2자리까지 표시합니다.
- 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"]
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러