혼자 공부하는 머신러닝 + 딥러닝 03-1 확인문제

손지호·2023년 7월 13일
0

1. k-최근접 이웃 회귀에서는 새로운 샘플에 대한 에측을 어떻게 만드나요?

① 이웃 샘플 클래스 중 다수인 클래스
② 이웃 샘플의 타깃값의 평균
③ 이웃 샘플 중 가장 높은 타깃값
④ 이웃 샘플 중 가장 낮은 타깃값

2. 과대적합과 과소적합에 대한 이해를 돕기 위해 복잡한 모델과 단수한 모델을 만들겠습니다. 앞서 만든 k-최근접 이웃 회귀 모델의 k값을 1, 5, 10으로 바꿔가며 훈련해 보세요. 그다음 농어의 길이를 5에서 45까지 바꿔가며 예측을 만들어 그래프로 나타내 보세요. n이 커짐에 따라 모델이 단순해지는 것을 볼 수 있나요?

# k-최근접 이웃 회귀 객체를 만듭니다.
knr = KNeighborsRegressor()
# 5에서 45까지 좌표를 만듭니다.
x = np.arrange(5, 45).reshape(-1,1)

# n = 1, 5, 10일 때 예측 결과를 그래프로 그립니다.
for n in [1, 5, 10]:
	# 모델을 훈련합니다.
    knr.n_neighbors = 
    knr.fit(train_input, train_target)
    #지정한 범위 x에 대한 예측을 구합니다.
    prediction = 
    
    # 훈련 세트와 예측 결과를 그래프로 그립니다.
    plt.scatter(train_input, train_target)
    plt.plot(x, prediction)
    plt.title('n_neighbors = {}'.format(n))
    plt.xlabel('length')
    plt.ylabel('weight')
    plt.show()







<풀이>

1. 답 ② k-최근접 이웃 회귀는 예측할 샘플에서 가장 가까운 k개의 주변 샘플을 찾고 이 주변 샘플의 타깃값을 평균하여 예측값을 구한다.


2.

# k-최근접 이웃 회귀 객체를 만듭니다.
knr = KNeighborsRegressor()
# 5에서 45까지 좌표를 만듭니다.
x = np.arrange(5, 45).reshape(-1,1)

# n = 1, 5, 10일 때 예측 결과를 그래프로 그립니다.
for n in [1, 5, 10]:
	# 모델을 훈련합니다.
    knr.n_neighbors = n
    knr.fit(train_input, train_target)
    #지정한 범위 x에 대한 예측을 구합니다.
    prediction = knr.predict(x)
    
    # 훈련 세트와 예측 결과를 그래프로 그립니다.
    plt.scatter(train_input, train_target)
    plt.plot(x, prediction)
    plt.title('n_neighbors = {}'.format(n))
    plt.xlabel('length')
    plt.ylabel('weight')
    plt.show()

profile
초보 중의 초보. 열심히 하고자 하는 햄스터!

0개의 댓글