[혼자 공부하는 머신러닝+딥러닝] 8강. 특성 공학과 규제 알아보기

Поделиться
HTML-код
  • Опубликовано: 11 ноя 2024

Комментарии • 49

  • @다랑-d8e
    @다랑-d8e Год назад

    만약 훈련 세트, 테스트 세트에 대한 결정계수가 99, 98이 나온 알파값과 97, 97이 나온 알파값이 있으면 둘 중 어떤 것을 선택해야하나요?
    테스트 세트 점수가 높은 전자를 선택해야할지, 두 점수의 차이가 적은 후자를 선택해야할지 정확한 기준이 궁금합니다.
    전자가 테스트 세트에 대한 점수가 더 높아도 훈련 세트의 점수와 차이가 크면 안정적이지 못한 점수로 봐야하는거 아닌가요?

    • @haesun_park
      @haesun_park Год назад

      안녕하세요. 훈련 세트와 테스트 세트에 대한 점수가 같다면 과소적합일 가능성이 높습니다. 따라서 전자를 선택하는게 좋을 것 같네요. 감사합니다.

    • @다랑-d8e
      @다랑-d8e Год назад

      @@haesun_park 감사합니다. 그러면 훈련세트와 테스트세트의 점수가 얼마나 차이나는지는 고려하지 않고, 단순히 테스트 세트의 점수가 가장 높은 것으로 선택하면 될까요?

    • @haesun_park
      @haesun_park Год назад

      @@다랑-d8e 두 점수의 차이가 많이 나면 과대적합을 의심해 볼 수 있습니다. 과대적합이라면 적절한 규제를 가해 모델의 복잡도를 낮춘 후에 다시 평가해 보는 것이 좋습니다. 감사합니다.

  • @tknam3278
    @tknam3278 2 года назад +1

    너무 좋은 영상!

  • @김영훈-z1e3z
    @김영훈-z1e3z 4 месяца назад

    안녕하세요 교수님, 질문있습니다.
    1. fit() 메서드를 사용할 때, test_input은 생략하는 이유는 train_input으로 학습된 모델에 테스트하기 위해서 따로 학습시키지 않는 건가요?? 항상 train_input만 학습시키더라구요.
    2. p.159 에 보면, 항상 훈련 세트로 학습한 변환기를 사용해서 테스트 세트까지 변환해라고 나와있습니다. 이는 특성개수를 맞춰주기 위해서라고 받아들이면 될까요?
    감사합니다.

    • @haesun_park
      @haesun_park 4 месяца назад +1

      안녕하세요. 네 맞습니다. 테스트 세트는 말 그대로 테스트 용도로 사용합니다. 훈련 세트를 변환한 방식대로 테스트 세트를 변환하지 않으면 만들어진 모델을 올바르게 평가할 수 없기 때문에 항상 훈련 세트에 적용한 변환기를 사용해 테스트 세트를 변환해야 합니다. 감사합니다.

  • @자성구-e7e
    @자성구-e7e Год назад

    잘보고 있습니다!

  • @여늘-p6s
    @여늘-p6s 2 года назад +2

    인공지능의 재미를 알게해주셔서 감사합니다

  • @yonglee5753
    @yonglee5753 2 года назад

    안녕하세요 작가님. 쉽게 강의해주셔서 여기까지 듣게 되었네요. 감사합니다
    혹시 과대적합, 과소적합을 방지하기 위해 규제 모델의 하이퍼 파라미터를 정할때, 최적의 값은 훈련세트와 테스트 세트의 score 값 차이가 작은 값인가요? 아니면 테스트 세트의 score 값이 가장 높은 것인가요?
    상식적으로는 둘의 의미가 같아 보이지만 좀 명확히 알고 싶어 질문합니다!

    • @haesun_park
      @haesun_park 2 года назад +1

      안녕하세요. 테스트 세트에서 점수가 가장 높은 모델이 최적입니다. 감사합니다!

  • @kyoungheechu5398
    @kyoungheechu5398 2 года назад +1

    정말 도움이 됩니다. 감사합니다. 교수님

    • @haesun_park
      @haesun_park 2 года назад

      도움이 되신다니 다행입니다. 감사합니다!

  • @jinbumjoo3908
    @jinbumjoo3908 Год назад

    릿지 랏소 회귀에서 가중치의 제곱 혹은 절대값을 규제로 한다는 것이 정확하게 무슨 의미일까요..?!

    • @haesun_park
      @haesun_park Год назад

      안녕하세요. 리지와 라쏘는 어떤 손실 함수(203페이지 설명 참조)를 최소화하여 문제를 해결합니다. 이 손실 함수에 가중치 절댓값이나 제곱을 더하면 리지와 라쏘가 손실 함수를 최소화하기 위해 가중치 값도 줄여야 합니다. 이를 통해 모델의 복잡도가 줄어드는 효과를 얻을 수 있습니다. 이를 규제라고 부릅니다(158페이지 참조). 감사합니다!

  • @kspecial5536
    @kspecial5536 3 года назад +2

    교수님 강의 덕분에 교수님께서 쓰신 책을 보면서 막혔던 내용들을 이해할 수 있었습니다. 접근하고 이해하기 난해했던 데이터 분석 분야에 조금씩 다가서고 있다는 점을 느끼게 해주셔서 감사합니다. 데이터 분석가, 더 나아가 데이터 사이언티스트로 전직을 꿈꾸는 33세 경영학 전공자입니다. 저도 언젠간 꼭 교수님처럼 멋진 데이터 사이언티스트로 거듭날 수 있겠죠? 현재 국비과정을 듣고 있는데 교수님처럼 차근차근 이해하기 쉽게 알려주시지를 않아서 애를 먹고 있던 터에 교수님 책과 강의를 만나서 숨통이 트입니다. 감사드리고 또 감사드립니다.

    • @haesun_park
      @haesun_park 3 года назад +1

      안녕하세요. 제가 쓴 책과 영상이 도움이 되신다니 정말 기쁩니다. 데이터 과학자는 프로그래밍이나 알고리즘뿐만 아니라 해결하려는 문제에 대한 이해가 꼭 필요합니다. 그래서 종종 경영이나 사회학 전공의 데이터 과학자를 볼 수 있습니다. 어떤 일이라도 꾸준히 노력하면 반드시 좋은 결과를 얻을 수 있다고 믿습니다. 화이팅하세요. 감사합니다! :)

  • @analog1170
    @analog1170 2 года назад

    혼공머신 교재 159page에 StandardScale설명을 보면 학습시킨 평균과 표준편차는 각각 mean_, sclae_ 속성에 저장되어 있다고 나오길래 실제로 그런지
    ss=StandardScaler()
    ss.fit(train_poly)
    print(ss.mean_ , ss.scale_)
    로 출력해 봤더니 "2.84452381e+01" 이런식으로 처리되길래(이게 0을 의미한다고는 알고있습니다. )
    그래프로 그려봤더니 대부분 0에 수렴하다가 index34번째 값만 4 정도로 튀어나오는 독특한 값을 보여줬습니다. 혹시 왜 그런지 알 수 있을까요?
    x=np.arange(55)
    plt.scatter(x, ss.mean_)
    plt.scatter(x, ss.scale_)
    로 그렸습니다.
    혹시 mean_과 scale_에 저장된 값이 정규화를 거치고 transform 된 train_data 값의 평균과 편차를 의미하는걸까요? 그럼 결과값이 0으로 나오는것은 이해하지만 왜 index34번쯤에서 부턴 4, 1.5, 1 이런값들이 나왔는지 의문입니다.

    • @haesun_park
      @haesun_park 2 года назад

      안녕하세요. mean_, scale_에 저장된 값은 정규화를 거치지 않은 원본 특성의 평균과 표준 편차입니다. 감사합니다.

    • @analog1170
      @analog1170 2 года назад +1

      ​@@haesun_park 그래프를 다시보니 출력된 값들의 y축범위가 천만자리까지 나와서 나머지 값들이 0인것처럼 밑에 깔려나온게 문제였던거 같네요. 시각적인 착각이었던것 같습니다. 답변 감사합니다!!

  • @최준혁-v4j
    @최준혁-v4j Год назад

    47:05 에서 알파 값에 따른 train_score 그래프를 그립니다. 하지만 제가 직접 코딩 하는 과정에서 ValueError: x and y must have same first dimension, but have shapes (6,) and (27,) 이라는 에러가 뜨고 확인 결과 x, y의 갯수가 달라 뜨는 것을 확인했습니다. 실제로 알파 개수는 6개, score 개수는 6개 이싱입니다. 이럴 때는 어떻게 하면 그래프를 그릴 수 있을까요?

    • @haesun_park
      @haesun_park Год назад +1

      안녕하세요. 이 절의 코드를 제대로 실행하면 train_score 리스트의 원소 개수는 6개입니다. 코랩에서 노트북을 실행하고 결과를 비교해 보시면 좋을 것 같습니다. colab.research.google.com/github/rickiepark/hg-mldl/blob/master/3-3.ipynb 감사합니다!

    • @최준혁-v4j
      @최준혁-v4j Год назад

      @@haesun_park와우 빠른 답변 감사합니다! 다시 한 번 해보겠습니다!

  • @선형소수
    @선형소수 3 года назад +1

    와 사이킷런 py 파일을 열어보면서 수학공식 이해하는 방법... 생각치 못했었는데, 말씀덕분에 한번 시도해보려고 합니다!! 항상 논문 구현하기 전에 마음이 턱 막혔었는데, 그 부분을 보면서 수학공식과 파이썬 구현 방식을 매칭시켜보면 되겠네요.... 감사합니다

  • @음악과함께-c6r
    @음악과함께-c6r 3 года назад

    책155쪽 '여기서 잠깐'에 PolynomialFeatures()에 include_bias=False가 기본값이라
    설명돼 있는데, True가 기본값 아닌가요? 영상수업에는 True를 기본값이라 말했습니다.

    • @haesun_park
      @haesun_park 3 года назад

      안녕하세요. 박해선입니다. 155쪽 '여기서 잠깐'에서 언급한 것은 include_bias의 기본값이 아니라 include_bias=True로 만든 특성을 사용해도 무관하다는 의미입니다. 감사합니다.

  • @tho_mas_lee
    @tho_mas_lee 2 года назад

    이번 강의도 정말 잘 들었습니다 ㅎㅎ
    최고 효율을 내는 alpha 값을 찾는 함수는 없나요?

    • @haesun_park
      @haesun_park 2 года назад +2

      안녕하세요. alpha와 같이 라이브러리를 사용할 때 사람이 지정하는 매개변수를 하이퍼파라미터라고 합니다. 하이퍼파라미터는 그리드 서치와 같은 도구로 최적의 값을 찾아야 합니다. 12강에서 이에 대해 소개합니다. 감사합니다!

  • @dkdldb.
    @dkdldb. 2 года назад

    안녕하세요~ 질문이 있습니다!
    책 151p에 나와있듯이 특성이 두 개면 차원이 3차원 된다고 하였잖아요~ 이때 기존하나에 특성을 하나 더 추가하여 이걸 shape로 찍어보면 (56, 2) 이런식으로 나옵니다.
    하지만 책 140p에도 제곱해서 특성을 하나 추가해서 (56, 2)형태로 나옵니다.
    넘파이의 shape를 찍어서 형태꼴이 동일한데 왜 141p에서는 2차방정식으로 표현하고 151p에서는 다중회귀라고 표현하나요?
    넘파이 shape기준으로 생각하면 안되나요? 그러다보니까 141p에서도 전 특성 두개로 밖에 생각이 안나요..

    • @haesun_park
      @haesun_park 2 года назад

      안녕하세요. 다항회귀는 기존의 특성을 제곱하는 식으로 다항식의 차수를 높이는 기법이고 다중회귀는 기존의 독립적인(!) 특성이 여러개인 경우를 말합니다. 감사합니다!

  • @null-vd2fm
    @null-vd2fm Год назад

    47:46

  • @sanghyeokmoon6353
    @sanghyeokmoon6353 3 года назад

    교수님 릿지 하고 훈련 하고 , predict()함수로 [10.0 3.0 1.8]의 결과를 보고 싶은데 어떻게 해야되죠, 도와주세요 ~

    • @peterpanlab2694
      @peterpanlab2694 2 года назад

      모델을 만드는게 결국 예측(분류)을 위해선데... 라는 생각이 들어서, 저도 책이나 강의를 다시 찾아봤는데 없더라구요. 결국 강의 내용을 분석해서 찾은 방법은....
      1. 예측할 데이터의 특성을 확장 pre_poly = poly.transform([[45., 13.49, 8.6]])
      2. 확장된 데이터를 표준화 pre_scaled = ss.transform(pre_poly)
      3. 회귀모델에 적용 ridge.predict(pre_scaled)
      - array([1323.13901698]) 가 나오네요
      제시하신 데이터는 모델에 의하면 큰 음수가 나와서 perch_full 마지막 데이터를 조금 변형해서 넣었습니다.

  • @BLACK_CODE
    @BLACK_CODE 3 года назад

    안녕하세요 저자님 질문이 있습니다.
    51:20 에서 lasso.coef_ == 0 의 의미는 계수가 0이라는 의미인데 이는 해당 특성을 사용하지 않았다 라고 보면 되나요?
    사용하지 않았다면 과대, 또는 과소적합이 일어나지 않기 위함이구요
    이렇게 이해하면 되나요?

    • @haesun_park
      @haesun_park 3 года назад

      안녕하세요. 박해선입니다. 라쏘의 계수가 0이면 해당 특성을 사용하지 않은 것 맞습니다. 일부 계수(가중치)를 0으로 만들면 과대적합을 방지할 수 있습니다. 많은 계수가 0이 되면 과소적합된 모델이 될 수도 있습니다. 감사합니다!

  • @천영성-s4l
    @천영성-s4l 3 года назад +1

    질문 있는데 표준화를 하는 필요성에 대해 궁금하고 데이터 표준화가 항상 필요한지 궁금 합니다

    • @haesun_park
      @haesun_park 3 года назад

      안녕하세요. 표준화를 하는 이유는 책의 설명을 참고해 주세요. 알고리즘에 따라 표준화가 필요한 이유가 조금씩 다릅니다. 또 결정 트리 같은 모델은 표준화가 필요하지 않습니다. 감사합니다! :)

  • @sqwe5821
    @sqwe5821 3 года назад

    라쏘는 predict를 하려면 어떻게 해야하나요??

  • @졸업생현성빈
    @졸업생현성빈 3 года назад

    교수님 질문이 있습니당.
    특성을 여러개로 만들어서 train_poly에 넣는데, 그 이후 LinearRegression에 그 특성들을 타겟값과 함께 훈련을 시킨다는 것 까지는 이해를 했습니다만 train_target은 train_poly와 함께 어떻게 처리가 되는지 궁금합니다

    • @haesun_park
      @haesun_park 3 года назад

      안녕하세요. 타깃은 입력 특성이 한 개인지 여러 개인지와 상관없이 동일합니다. 입력 값으로 만든 예측이 타깃에 가까워지도록 모델을 훈련합니다. 감사합니다.

  • @정아인-y8g
    @정아인-y8g 2 года назад +1

    넘파이 튜토리얼 주소가 뭔가요ㅜㅜ

    • @haesun_park
      @haesun_park 2 года назад

      ml-ko.kr 에서 보실 수 있습니다.

  • @araya2812
    @araya2812 3 года назад

    48:00 라쏘회귀

  • @curieuxjy
    @curieuxjy 3 года назад +1

    15:26 다항특성 만들기

  • @조찬-f3w
    @조찬-f3w 3 года назад

    36:42 google colab으로 공부하는 사람인데요
    print(ridge.score(test_scaled, test_target))를 입력하면
    Found input variables with inconsistent numbers of samples: [14, 42]라는 에러가 뜨나요?

    • @haesun_park
      @haesun_park 3 года назад

      안녕하세요. 어떤 코드 때문에 에러가 발생했는지 제가 알수는 없지만 깃허브에 있는 3장 3절의 코드와 비교해 보시면 원인을 쉽게 찾으실 수 있을 것 같습니다. colab.research.google.com/github/rickiepark/hg-mldl/blob/master/3-3.ipynb 감사합니다.

    • @조찬-f3w
      @조찬-f3w 3 года назад +1

      @@haesun_park 감사합니다 test 와 train을 헷갈려 오류가 났었네요