[오답노트] Python에서 for 문으로 matplotlib 그래프 겹치기 w. 머신러닝

2025. 1. 5. 11:31·Coding & Data Analysis/Python

구현하고자 하는 것

맨날 plt.plot 이나 scatter 으로 일일히 겹치는 건 지루하다!! for 문으로 그래프 드르륵 탁!

(for 문을 활용해서 다항 회귀의 차수에 따른 그래프를 겹쳐서 그리기)

 

단계별 코드

plt.figure()
plt.scatter(X,y, c = '#2EC4B6', s = 20, alpha = 0.3)

figure 랑 scatter 를 먼저 입력한다. figure 가 제일 위에 오는게 포인트!

 

col = ['orange','blue','green','red']
label = ['x^1','x^2','x^3','x^4']
for x in range(1,5) :
    poly_reg_x = PolynomialFeatures(degree = x) #차수
    X_deg = poly_reg_x.fit_transform(X)
    p_reg = LinearRegression()
    p_reg.fit(X_deg,y)
    plt.plot(X,p_reg.predict(X_deg), lw = 1.2, c = col[x-1], label = label[x-1])
    print(p_reg.score(X_deg,y))

여기가 가장 핵심!

for 문과 range 를 활용해서 차수(정수)를 뽑아 입력하는 방식이기 때문에,

정수를 색깔과 legend 를 위한 label 을 인덱싱하는 인덱스로 활용한다.

 

for 문 안에 있는 구체적인 모델 학습 절차 :

  1. degree 설정을 위한 PolynomialFeatures 객체 생성
  2. 객체를 활용해서 원래 생성해놓은 2차원 array(X)를 차수에 맞게 fit_transform
  3. LinearRegression 모델 생성
  4. 학습시키기
  5. 학습시킨 모델 바탕으로 plt.plot (for문과 같이 사용하면 여러 플롯을 겹쳐서 넣을 수 있다)

 

plt.ylim(0,100)
plt.xlabel('Temp(Std scaled)')
plt.ylabel('Ozone')
plt.legend()
plt.show()

마지막으로 부수적인 표시값들 입력하기.

 

결과

차수에 따른 그래프 표시하기. 차수가 올라갈수록 과대적합 우려가 있다.

0.48796010099390796
0.5426269081225714
0.5479096894941288
0.5735866078941212

여기선 2차가 가장 데이터를 잘 표현해주는 것처럼 보인다. 물론 score는 차수가 올라갈수록 증가할 수 밖에.

상황에 맞게끔 차수의 조정이 필요하다. J Curve, Slide 등 차수가 높아야 표현할 수 있는 추세도 존재하기에! 

 

 

관련 포스팅

https://skrrdevlog.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-airquality-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%85%8B%EC%9C%BC%EB%A1%9C-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%B0%B0%EC%9A%B0%EA%B8%B0-%EB%8B%A4%ED%95%AD-%ED%9A%8C%EA%B7%80

 

[파이썬] airquality 데이터셋으로 머신러닝 배우기 <다항 회귀>

데이터이번엔 선형성이 강하지 않은 새로운 데이터를 사용해보고 싶었다. 파이썬에서 결측치 처리도 해볼겸..R의 airquality 데이터는 결측치를 포함하고 있고, 약한 선형성을 띄기에 ML을 연습하

skrrdevlog.tistory.com

https://skrrdevlog.tistory.com/entry/Python-%EB%AF%B8%EA%B5%AD-%EA%B2%BD%EC%A0%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%85%8B%EC%9C%BC%EB%A1%9C-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%B0%B0%EC%9A%B0%EA%B8%B0-1

 

[파이썬] 미국 경제 데이터셋으로 머신러닝 배우기 <선형회귀>

데이터R의 ggplot2 라이브러리의 "economics" 데이터를 활용했습니다. https://ggplot2.tidyverse.org/reference/economics.html US economic time series — economicsThis dataset was produced from US economic time series data available from h

skrrdevlog.tistory.com

 

 

'Coding & Data Analysis > Python' 카테고리의 다른 글

[Python/파이썬] 미국 경제 데이터로 배우는 머신러닝 <K-평균>  (4) 2025.01.09
[파이썬] iris 데이터셋으로 머신러닝 배우기 <로지스틱 회귀>  (1) 2025.01.07
[파이썬] airquality 데이터셋으로 머신러닝 배우기 <다항 회귀>  (1) 2025.01.04
[파이썬] iris 데이터셋으로 머신러닝 배우기 <다중선형회귀 & 평가지표>  (0) 2025.01.02
[파이썬] 미국 경제 데이터셋으로 머신러닝 배우기 2 <경사 하강법>  (1) 2024.12.30
'Coding & Data Analysis/Python' 카테고리의 다른 글
  • [Python/파이썬] 미국 경제 데이터로 배우는 머신러닝 <K-평균>
  • [파이썬] iris 데이터셋으로 머신러닝 배우기 <로지스틱 회귀>
  • [파이썬] airquality 데이터셋으로 머신러닝 배우기 <다항 회귀>
  • [파이썬] iris 데이터셋으로 머신러닝 배우기 <다중선형회귀 & 평가지표>
흑석동사는시골쥐
흑석동사는시골쥐
문과 경영학도 숫자 배우기 프로젝트
  • 흑석동사는시골쥐
    NaN
    흑석동사는시골쥐
  • 전체
    오늘
    어제
  • 링크

    • 독서 일지
    • 올리고 싶은 거 올려요
    • 분류 전체보기 (75)
      • Coding & Data Analysis (52)
        • Python (23)
        • R (21)
        • Excel & Data (2)
        • Git & Github (4)
        • Certificate (2)
      • Project (15)
        • 일자리 스크래핑 서비스 (8)
        • 최적의 인스타 피드 (2)
        • 주식 & 비트코인 분석 (5)
      • Economics (1)
        • 경제기사 스크랩 (1)
      • Records & Thoughts (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 공지사항

  • 인기 글

  • 태그

    git
    시각화
    주식
    adsp공부법
    엔비디아
    코랩
    동아리
    matplotlib
    자격증
    Colab
    ADSP
    데이터분석
    r
    프로그래밍
    비전공자
    기초
    파이썬
    Python
    데이터
    지도
    전처리
    FLASK
    AI반도체
    데이터수집
    심장병 데이터
    다항회귀
    웹스크래퍼
    머신러닝
    주가분석
    개발
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
흑석동사는시골쥐
[오답노트] Python에서 for 문으로 matplotlib 그래프 겹치기 w. 머신러닝
상단으로

티스토리툴바