숫자 예측하기
Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 11번째.
이 장의 모델은 숫자를 예측합니다. 이 장을 마칠 때쯤이면 모델이 놓친 부분을 보여 주는 차트가 모델이 간과한 것을 드러낼 것입니다:
알고 있는 직선부터 시작하세요. LinearRegression은 샘플마다 행 하나, 특성마다 열 하나로 이루어진 표 X에서 그 직선을 학습합니다:
from sklearn.linear_model import LinearRegression
area = np.array([60, 75, 90, 110, 130, 150]) # 주택 면적, 단위는 m²
price = np.array([215, 248, 290, 335, 385, 428]) # 천 달러
X = area.reshape(-1, 1) # 6개 행, 1개 열
model = LinearRegression()
model.fit(X, price)
print(np.round(model.coef_, 2), np.round(model.intercept_, 2))
print(np.round(np.polyfit(area, price, 1), 2))같은 줄을 두 번 출력합니다:
[2.39] 71.59
[ 2.39 71.59]coef_에는 특성마다 하나씩 기울기가 들어 있습니다. 면적이 1m² 늘어날 때마다 2.39천 달러가 더해집니다. intercept_는 0m²에서의 직선의 시작점입니다. 그러면 model.predict([[100]])은 100m²의 가격을 약 310.85천 달러로 예측합니다.
챌린지
중급인쇄소는 가격을 공개하지 않았지만, 과거 작업 10건의 데이터인 달러 단위의 pages와 price가 있습니다. 프로그램은 새 작업의 페이지 수를 읽습니다.
- 페이지 수를 한 열짜리 표로 만들어
LinearRegression을 학습시킵니다. - 페이지당 가격(소수점 이하 3자리)과 설정 수수료인 절편(소수점 이하 2자리)을 출력합니다.
- 새 작업의 예측 가격(소수점 이하 2자리)을 출력합니다.
다른 인쇄소와 120의 경우:
Per page: 0.095 dollars
Setup fee: 4.1 dollars
120 pages: 15.5 dollars직접 해보기
import numpy as np
from sklearn.linear_model import LinearRegression
# 지난 인쇄 작업 10건: 인쇄한 페이지 수와 지불한 금액(달러)
pages = np.array([40, 75, 120, 160, 210, 260, 300, 380, 450, 520])
price = np.array([7.38, 12.6, 17.65, 20.69, 26.63, 32.18, 37.76, 46.4, 55.17, 60.89])
new_pages = int(input())
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러