선형 회귀 적합 및 플로팅

Machine LearningBeginner
지금 연습하기

소개

이 프로젝트에서는 일련의 데이터 포인트에 대해 선형 회귀를 수행하고 Matplotlib 을 사용하여 결과를 시각화하는 방법을 배우게 됩니다. 선형 회귀는 종속 변수 (y) 와 하나 이상의 독립 변수 (x) 간의 관계를 모델링하는 데 사용되는 기본적인 머신 러닝 기술입니다.

🎯 과제

이 프로젝트에서는 다음을 배우게 됩니다:

  • 주어진 데이터를 더 쉽게 조작할 수 있도록 Numpy 배열로 변환하는 방법
  • 기울기 (w) 와 절편 (b) 을 포함한 선형 회귀 모델의 계수를 계산하는 방법
  • 산점도에 데이터 포인트를 플롯하고 동일한 플롯에 선형 회귀선을 그리는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • 선형 회귀 분석을 위한 데이터 준비
  • Numpy 함수를 사용하여 선형 회귀 매개변수 계산
  • Matplotlib 을 사용하여 산점도를 생성하고 선형 회귀선을 겹쳐 그리기
  • 선형 회귀와 데이터 분석 및 시각화에서의 실용적인 응용에 대한 더 나은 이해

데이터를 NumPy 배열로 변환

이 단계에서는 주어진 데이터를 더 쉽게 조작할 수 있도록 NumPy 배열로 변환하는 방법을 배우게 됩니다.

linear_regression_plot.py 파일을 엽니다.

linear_plot() 함수의 시작 부분에서 data 변수를 찾습니다.

np.array() 함수를 사용하여 data 리스트를 NumPy 배열로 변환합니다.

data = np.array(data)

이제 data 변수는 NumPy 배열이므로 다음 단계에서 더 쉽게 작업할 수 있습니다.

✨ 솔루션 확인 및 연습

선형 회귀 매개변수 계산

이 단계에서는 데이터로부터 계수 w와 절편 b의 값을 계산하는 방법을 배우게 됩니다.

linear_plot() 함수에서 계속 진행하여 NumPy 배열 data에서 xy 값을 추출합니다.

x = data[:, 0]
y = data[:, 1]

np.polyfit() 함수를 사용하여 선형 회귀 매개변수 wb를 계산합니다.

w, b = np.polyfit(x, y, 1)

round() 함수를 사용하여 계산된 wb 값을 소수점 두 자리로 반올림합니다.

w = round(w, 2)
b = round(b, 2)

이제 다음 단계에서 사용할 준비가 된 계수 w와 절편 b의 값을 얻었습니다.

✨ 솔루션 확인 및 연습

선형 회귀선 시각화

이 단계에서는 샘플 산점도를 그리고 계산된 매개변수를 기반으로 그래프에 적합선을 그리는 방법을 배우게 됩니다.

linear_plot() 함수에서 계속 진행하여 plt.subplots()를 사용하여 새로운 Matplotlib figure 와 axis 를 생성합니다.

fig, ax = plt.subplots()

ax.scatter() 함수를 사용하여 데이터 포인트를 그립니다.

ax.scatter(x, y, label="Data Points")

ax.plot() 함수와 계산된 wb 값을 사용하여 선형 회귀선을 그립니다.

ax.plot(x, w * x + b, color="red", label=f"Linear Fit: y = {w}x + {b}")

플롯에 레이블과 범례를 추가합니다.

ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.legend()

마지막으로 w, b, 그리고 fig 객체의 값을 반환합니다.

return w, b, fig

이제 주어진 데이터에 대해 선형 회귀를 수행하고 계수와 Matplotlib 플롯 객체를 반환하는 linear_plot() 함수를 완성했습니다.

✨ 솔루션 확인 및 연습

선형 회귀 시각화 실행

이 마지막 단계에서는 스크립트를 실행하여 선형 회귀 플롯이 작동하는 것을 확인하는 방법을 배우게 됩니다. 이 코드 부분은 linear_plot()에서 이전에 정의된 함수를 사용하여 산점도와 선형 회귀선을 함께 표시합니다.

제공된 Python 스니펫은 스크립트가 메인 프로그램으로 실행되는지 확인하고, 그렇다면 linear_plot() 함수를 호출하고 결과 플롯을 표시합니다.

if __name__ == "__main__":
    ## Call the linear_plot function to compute the regression parameters and generate the plot
    w, b, fig = linear_plot()
    ## Display the plot
    plt.show()

여기서 if __name__ == "__main__":은 스크립트가 모듈로 가져올 때가 아니라 직접 실행될 때만 linear_plot() 함수가 호출되도록 보장합니다. 기울기 w, 절편 b, 그리고 figure 객체 fig를 반환하는 linear_plot()을 호출한 후, plt.show()를 사용하여 창에 플롯을 표시합니다. 이를 통해 회귀선의 데이터 적합성을 시각적으로 검사할 수 있습니다.

이제 linear_regression_plot.py의 첫 번째 줄 상단에 있는 "Run Cell" 버튼을 누르고 결과를 확인할 수 있습니다.

Linear regression plot result

이 설정을 통해 다른 데이터 세트나 회귀 계산 조정을 사용하여 스크립트를 쉽게 다시 실행하여 즉각적인 시각적 피드백을 확인할 수 있습니다.

✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.