Startik Startik
Guest
홈으로
로그아웃
브라우저에서 비디오를 지원하지 않습니다.
1 00:00:00,000 --> 00:00:13,400 안녕하세요 코리아이티 아카데미 강남정 김영선 강사입니다. 2 00:00:13,400 --> 00:00:21,080 11강 분류 알고리즘 두 번째 시간으로 하이퍼 파라미터 튜닝과 같이 한번 보도록 하겠습니다. 3 00:00:21,080 --> 00:00:26,760 이번 강의 목표입니다. 랜덤 포레스트와 SVM의 작동 원리를 이해할 수 있다. 4 00:00:26,760 --> 00:00:35,400 두 번째로 그리드 서치 CVE와 랜덤 마이즈드 서치 CVE를 통해서 하이퍼 파라미터 튜닝을 수행할 수 있다. 5 00:00:35,400 --> 00:00:40,080 이 두 가지 목표를 가지고 수업 진행하도록 하겠습니다. 6 00:00:40,080 --> 00:00:45,279 먼저 저희 지도 알고리즘에 대해서 간단히 보고 넘어갈게요. 7 00:00:45,279 --> 00:00:54,160 지도 알고리즘은 입력 데이터 X라는 입력 데이터와 출력 레이블 Y라는 것을 기반으로 학습하게 되고요. 8 00:00:54,160 --> 00:00:59,119 새로운 데이터에 대한 예측을 수행하는 알고리즘을 의미하게 돼요. 9 00:00:59,119 --> 00:01:06,360 입력 데이터, 입력되는 각들에 따라서 출력 레이블 Y가 정해진다 라고 생각을 해주시면 됩니다. 10 00:01:06,360 --> 00:01:12,279 지도 학습 알고리즘의 종류에는 분류와 획이 크게 두 가지로 나뉘어지고요. 11 00:01:12,279 --> 00:01:16,040 분류는 범주형 데이터를 예측할 때 사용해요. 12 00:01:16,040 --> 00:01:23,199 질병을 진단한다거나 이메일의 스팸 여부를 확인한다 이럴 때 주로 사용하게 되고요. 13 00:01:23,199 --> 00:01:27,839 획이의 알고리즘은 연속적인 값을 예측할 때 사용하게 됩니다. 14 00:01:27,839 --> 00:01:34,480 주택 가격을 예측한다거나 또는 주식 시장을 예측할 때 획이의 알고리즘이 사용이 돼요. 15 00:01:34,480 --> 00:01:38,839 그럼 알고리즘 종류들은 어떤 것들이 있는지 한번 보도록 할게요. 16 00:01:38,839 --> 00:01:42,760 분류 알고리즘에서는 이렇게 다양한 알고리즘이 있는데, 17 00:01:42,760 --> 00:01:47,400 첫 번째로 로지스틱 획이, 로지스틱 획이의 알고리즘이 있고요. 18 00:01:47,400 --> 00:01:52,279 획이가 들어가서 획이의 알고리즘이 아닐까 싶을 때도 있겠지만, 19 00:01:52,320 --> 00:01:55,639 로지스틱 획이는 분류에 해당하게 됩니다. 20 00:01:55,639 --> 00:02:00,440 두 번째로 서프트 벡터 머신, SVM이라고 하는 알고리즘도 있고요. 21 00:02:00,440 --> 00:02:05,040 세 번째로 결정트리, 디시전트리 라는 알고리즘이 있습니다. 22 00:02:05,040 --> 00:02:11,479 네 번째로는 디시전트리를 여러 개 묶어서 사용할 수 있는 랜덤 포레스트가 있고요. 23 00:02:11,479 --> 00:02:20,800 또 K-최근적 KNN 알고리즘, 이거 말고도 굉장히 다양한 알고리즘들이 있다고 보시면 됩니다. 24 00:02:20,800 --> 00:02:27,160 획이 알고리즘에는 선형 획이, 다항 획이, 릿지, 라소 획이가 포함되어 있는데, 25 00:02:27,160 --> 00:02:30,679 이번 시간에는 분류 알고리즘에 대해서 배워볼 거고요. 26 00:02:30,679 --> 00:02:34,000 다음 시간에 획이에 대해서 보도록 하겠습니다. 27 00:02:34,000 --> 00:02:39,119 오늘 배울 부분은 다양한 알고리즘들이 있는데, 28 00:02:39,119 --> 00:02:46,199 이번 수업 때는 서프트 벡터 머신과 랜덤 포레스트에 대해서 배워보도록 할게요. 29 00:02:46,199 --> 00:02:49,119 먼저 랜덤 포레스트부터 보도록 하겠습니다. 30 00:02:49,119 --> 00:02:52,960 랜덤 포레스트는 여러 개의 결정트리를 학습하고, 31 00:02:52,960 --> 00:02:57,759 앙상블 방식을 통해서 최종 예측을 수행하는 알고리즘이에요. 32 00:02:57,759 --> 00:03:03,479 작동 원리는 여러 결정트리를 먼저 독립적으로 학습을 하게 되고요. 33 00:03:03,479 --> 00:03:11,119 이 각 트리의 예측 결과를 기반으로 다수결 투표, 분류하거나 또는 평균값을 계산합니다. 34 00:03:11,119 --> 00:03:14,559 이런 형태로 해서 작동이 진행이 되고, 35 00:03:14,559 --> 00:03:18,759 이 랜덤 포레스트의 장점과 단점 같이 보도록 하겠습니다. 36 00:03:18,759 --> 00:03:23,679 장점은 첫 번째, 과적합을 방지할 수 있다는 장점이 있습니다. 37 00:03:23,679 --> 00:03:30,240 이렇게 딱 맞게 맞아 떨어지는 것, 이것을 과적합됐다, 딱 맞게 떨어진다, 38 00:03:30,240 --> 00:03:34,240 완전히 맞다는 의미에서 과적합이라고 표현을 하는데, 39 00:03:34,240 --> 00:03:36,559 오버피팅이라고 표현을 하게 됩니다. 40 00:03:36,559 --> 00:03:44,880 과적합이 되면 기존 있는 데이터에서는 정확한 높은 결과를 볼 수가 있지만, 41 00:03:44,880 --> 00:03:50,639 새로운 데이터셋이 들어왔을 때는 예측 결과의 정확도가 떨어질 수가 있어요. 42 00:03:50,639 --> 00:03:54,559 과적합을 방지할 수 있다는 장점을 가지고 있고요. 43 00:03:54,559 --> 00:03:57,880 두 번째로는 높은 정확도를 가지고 있습니다. 44 00:03:57,880 --> 00:04:01,759 이에 비해 단점으로는 예측 속도가 조금 느려요. 45 00:04:01,759 --> 00:04:06,199 여러 개의 결정트리를 독립적으로 여러 번 학습을 시키죠. 46 00:04:06,199 --> 00:04:10,520 그렇기 때문에 느린 예측 속도를 가지고 있고요. 47 00:04:10,520 --> 00:04:14,960 또 해석이 어렵다는 단점을 가지고 있습니다. 48 00:04:14,960 --> 00:04:20,040 랜덤 포레스트는 앙상블 방식을 통해서 수행이 된다고 했었죠. 49 00:04:20,040 --> 00:04:24,160 앙상블이라는 게 어떤 것을 의미하는지 한번 보도록 할게요. 50 00:04:24,160 --> 00:04:31,440 머신러닝에서 여러 모델을 결합해서 예측 성능을 향상시키는 방법론을 의미합니다. 51 00:04:31,440 --> 00:04:34,559 이 앙상블에는 크게 세 가지가 있는데, 52 00:04:34,559 --> 00:04:39,720 백잉, 부스팅, 스티킹이라는 앙상블 기법이 있고요. 53 00:04:39,720 --> 00:04:41,559 백잉부터 보도록 할게요. 54 00:04:41,559 --> 00:04:46,679 백잉은 결정트리 같은 것들을 독립적으로 학습시킨 후에 55 00:04:46,679 --> 00:04:52,279 그 결과를 평균 내거나 투표를 통해서 최종 결과를 도출하게 됩니다. 56 00:04:52,279 --> 00:04:59,040 저희가 볼 랜덤 포레스트는 백잉 방법론이 사용되었다고 봐주시면 되고요. 57 00:04:59,040 --> 00:05:04,000 부스팅은 이전 학습기에서 오차를 점점 보완하는 방식으로 58 00:05:04,000 --> 00:05:06,720 순차적으로 학습을 시키게 돼요. 59 00:05:06,720 --> 00:05:16,000 부스팅의 방식에는 그래디언트 부스팅, XG 부스팅, 라이트 GBM 이런 것들이 포함되어 있습니다. 60 00:05:16,000 --> 00:05:21,519 스티킹은 서로 다른 종류의 모델들을 여러 가지 모델들을 결합해서 61 00:05:21,519 --> 00:05:24,519 최적의 조합을 찾는 것을 의미해요. 62 00:05:24,519 --> 00:05:31,600 상위 메타모델이 하위 모델들의 출력을 학습하면서 진행이 됩니다. 63 00:05:31,600 --> 00:05:36,480 이렇게 여러 모델을 결합해서 예측 성능을 향상시키는 방법론, 64 00:05:36,480 --> 00:05:40,920 이것을 앙상블이라고 한다는 것까지 기억해 주시고요. 65 00:05:40,920 --> 00:05:44,079 조금 이따가 코드로 확인해 보도록 하겠습니다. 66 00:05:44,079 --> 00:05:47,920 두 번째 알고리즘, SVM에 대해서 보도록 할게요. 67 00:05:47,920 --> 00:05:51,399 Support Vector Machine이라고 하고요. 68 00:05:51,399 --> 00:05:56,920 초평면을 사용해서 데이터를 분류하는 분류 알고리즘에 해당하게 됩니다. 69 00:05:56,920 --> 00:06:04,519 SVM의 작동 원리는 먼저 데이터를 가장 잘 분류할 수 있는 최적의 초평면을 찾게 돼요. 70 00:06:04,519 --> 00:06:12,920 초평면에서 가장 가까운 데이터인 Support Vector를 기준으로 최적화를 수행하면서 분류를 진행하게 됩니다. 71 00:06:12,920 --> 00:06:22,200 SVM의 장단점도 확인해 보도록 하겠습니다. 72 00:06:22,200 --> 00:06:26,959 장점에는 고차원 데이터에 적합하다는 장점을 가지고 있고요. 73 00:06:26,959 --> 00:06:31,839 두 번째로는 과적합 방지 효과를 나타내고 있어요. 74 00:06:31,839 --> 00:06:37,279 이에 비해 단점으로는 대규모 데이터 에세스에서는 느릴 수가 있고요. 75 00:06:37,279 --> 00:06:42,279 또 적절한 커널과 하이퍼 파라미터 설정이 굉장히 중요합니다. 76 00:06:42,279 --> 00:06:50,480 그러면 여기서 초평면을 사용해서 데이터를 분류한다고 했는데 초평면이 뭔지 한번 보도록 하겠습니다. 77 00:06:50,480 --> 00:06:53,920 SVM이 사용하는 핵심 개념 중에 하나예요. 78 00:06:53,920 --> 00:07:01,079 데이터를 분류하거나 회기 분석을 수행할 때 사용되는 결정 경계를 의미하게 됩니다. 79 00:07:01,079 --> 00:07:06,959 2차원에서는 직선을 나타내고요. 3차원에서는 평면을 나타내요. 80 00:07:06,959 --> 00:07:13,160 그리고 n차원에서는 n-1차원의 서브 스페이스를 나타내게 됩니다. 81 00:07:13,160 --> 00:07:22,239 이 초평면은 SVM의 목표와 일치하게 되는데 이 초평면에 SVM에서 사용한다고 했죠? 82 00:07:22,239 --> 00:07:29,720 SVM의 목표는 데이터를 가장 잘 분류할 수 있는 최적의 초평면을 찾는 것이 있습니다. 83 00:07:29,720 --> 00:07:40,519 여기서 가장 잘 분리라는 것은 초평면과 각 클래스의 가장 가까운 데이터 포인트, 이것을 서포트 베터라고 할 수가 있고요. 84 00:07:40,519 --> 00:07:42,959 이것을 서포트 베터라고 하고요. 85 00:07:42,959 --> 00:07:51,320 이 가장 가까운 데이터 포인트 사이에 거리가 최대가 되는 것을 의미한다라고 보시면 돼요. 86 00:07:51,359 --> 00:08:05,119 즉, 가장 잘 분리됐다는 것은 초평면과 가장 가까운 데이터 포인트의 거리가 최대가 되는 것을 의미한다라는 것으로 정리해 주시면 됩니다. 87 00:08:05,119 --> 00:08:07,640 자, 그 다음으로 보도록 하겠습니다. 88 00:08:07,640 --> 00:08:11,040 하이퍼 파라미터 튜닝에 대해서 보도록 할게요. 89 00:08:11,040 --> 00:08:19,559 하이퍼 파라미터 튜닝이라는 것은 모델 학습에 영향을 미치는 사용자가 설정하는 매개 변수를 의미합니다. 90 00:08:19,559 --> 00:08:26,880 결정 프리에서 맥스텝스나 또는 민 샘플 스플릿, 이런 것들이 포함되어 있어요. 91 00:08:26,880 --> 00:08:38,440 하이퍼 파라미터 튜닝이 중요한 이유는 잘못된 하이퍼 파라미터를 선택하게 된다며 모델 성능을 저하시킬 수 있다는 문제가 발생하게 되고 92 00:08:38,440 --> 00:08:46,479 또 적절한 값을 설정했을 때 과적합과 과소적합을 방지하고 성능을 향상시킬 수가 있습니다. 93 00:08:46,479 --> 00:08:50,440 그럼 최적화 방법은 어떤 것들이 있는지 보도록 할게요. 94 00:08:50,440 --> 00:08:58,280 최적화 방법은 두 가지가 있습니다. 그리드 서치 CV와 랜덤 마이즈드 서치 CV 두 가지가 있고요. 95 00:08:58,280 --> 00:09:05,840 그리드 서치 CV는 모든 하이퍼 파라미터 조합을 탐색해서 최적의 조합을 선택하게 돼요. 96 00:09:05,840 --> 00:09:12,559 장점으로는 완전 탐색을 통해서 최적의 결과를 보장할 수 있다라는 장점이 있지만 97 00:09:12,559 --> 00:09:17,880 이에 비해 단점으로는 계산 비용이 높다는 단점을 가지고 있습니다. 98 00:09:17,880 --> 00:09:23,719 두 번째는 랜덤 샘플링을 통해서 하이퍼 파라미터를 탐색할 수가 있고요. 99 00:09:23,719 --> 00:09:28,960 장점으로는 계산 비용이 절감된다는 장점을 가지고 있어요. 100 00:09:28,960 --> 00:09:34,880 랜덤으로 샘플링 하기 때문에 계산 비용이 절감 효과를 나타내고 있고요. 101 00:09:34,880 --> 00:09:39,039 단점으로는 최적 결과를 보장하지는 않습니다. 102 00:09:39,039 --> 00:09:44,039 랜덤으로 샘플링 된 결과가 이 조합이 잘못되어 있다면 103 00:09:44,039 --> 00:09:49,280 랜덤 샘플링이 잘못되어 있다면 최적의 결과를 당연히 보장하지 않겠죠. 104 00:09:49,280 --> 00:09:55,640 그래서 단점으로는 최적의 결과를 항상 보장하지 않는다는 단점을 가지고 있습니다. 105 00:09:55,640 --> 00:10:01,119 그러면 이 내용을 기반으로 실습 바로 보도록 하겠습니다. 106 00:10:01,159 --> 00:10:10,479 첫 번째로 Iris 데이터셋을 시각화해서 어떻게 분류가 나타나는지 확인해 보도록 할 거고요. 107 00:10:10,479 --> 00:10:14,679 특징 두 가지를 선택해서 확인해 보도록 하겠습니다. 108 00:10:14,679 --> 00:10:23,159 두 번째로는 Iris 데이터셋으로 배깅을 진행해서 랜덤 포레스트 확인해 보도록 하겠습니다. 109 00:10:23,159 --> 00:10:28,599 예측 성능 평가까지 진행해서 어떻게 결과가 나오는지 확인해 볼 거고요. 110 00:10:28,599 --> 00:10:40,320 또 배깅을 진행했을 때 예측 성능 평가가 Iris 데이터셋은 정확히 50으로 나온다는 것을 알고 있죠. 111 00:10:40,320 --> 00:10:49,479 분류가 잘 되어 있는 좋은 데이터셋이기 때문에 결과가 1.0 형태로 나오게 될 거에요. 112 00:10:49,479 --> 00:10:55,520 그렇기 때문에 조금 더 복잡한 데이터를 시각화해서 확인해 볼 거고 113 00:10:55,520 --> 00:11:02,599 그리고 이 복잡한 데이터를 토대로 배깅까지 진행해 보도록 하겠습니다. 114 00:11:02,599 --> 00:11:12,359 배깅 뿐만 아니라 그래디언티 부스팅, 스티킹까지 확인해서 결과가 어떻게 차이가 있는지 확인해 보도록 하겠습니다. 115 00:11:12,359 --> 00:11:19,000 두 번째로는 SVM 실습을 진행할 건데요. 이번에도 Iris 데이터셋을 사용할 거에요. 116 00:11:19,000 --> 00:11:25,000 SVM 모델로 학습을 시켰을 때 결과가 어떻게 출력되는지 확인해 볼 거고 117 00:11:25,000 --> 00:11:31,799 두 번째로는 이번에도 복잡한 데이터 하나를 불러다가 사용해 보도록 하겠습니다. 118 00:11:31,799 --> 00:11:41,840 복잡한 데이터를 실습할 때는 Cycle1 데이터셋 안에 있는 다양한 데이터셋을 활용해서 시각화까지 진행해 보도록 하겠습니다. 119 00:11:41,840 --> 00:11:48,000 그러면 코렙에서 코드 먼저 작성해 주시고요. 저희 같이 한번 보도록 하겠습니다. 120 00:11:48,000 --> 00:11:52,799 먼저 Iris 데이터셋 시각화부터 진행해 보도록 할게요. 121 00:11:52,799 --> 00:12:04,159 Iris 데이터셋이 Sibon이라는 라이브러리 안에도 있지만 Iris 데이터셋은 Cycle1 안에도 포함되어 있습니다. 122 00:12:04,159 --> 00:12:10,559 그래서 이번에는 Cycle1 안에 있는 데이터셋을 활용해서 진행을 할 거고요. 123 00:12:10,559 --> 00:12:18,320 실행해 보시면 Iris 데이터 시각화되는 결과 확인하실 수가 있죠. 124 00:12:18,320 --> 00:12:26,960 결과를 확인해 보면 이 데이터셋들이 잘 나뉘어져 있고 섞여 있는 부분이 많지 않음을 확인할 수가 있습니다. 125 00:12:26,960 --> 00:12:35,599 세토사, 버지컬러, 버지니카 이렇게 품종 3가지가 있죠. 126 00:12:35,599 --> 00:12:42,239 세토사, 버지컬러, 버지니카 3개의 품종으로 잘 나와 있는 걸 확인할 수가 있고요. 127 00:12:42,239 --> 00:12:51,640 이 데이터를 토대로 이 Iris 데이터셋을 토대로 먼저 X와 Y로 데이터를 분리해서 128 00:12:51,640 --> 00:12:59,919 학습 데이터와 테스트 데이터를 분리하고 랜덤 포레스트 모델을 생성해서 확인해 보도록 하겠습니다. 129 00:12:59,919 --> 00:13:08,159 랜덤 포레스트 모델을 생성할 때 랜덤 포레스트 클래스피어라는 클래스를 이용해 주시면 되고요. 130 00:13:08,159 --> 00:13:13,760 여기서 매개 변수를 추가해 줬죠. 이 부분이 뭘까요? 131 00:13:13,760 --> 00:13:21,400 이 부분이 하이퍼 파라미터 튜닝하는 부분이죠. 저희가 값을 넣어준 부분입니다. 132 00:13:21,400 --> 00:13:27,679 이렇게 100이라고 넣어줬고요. 피팅 시키고 예측 성능 평가해 보도록 할게요. 133 00:13:27,679 --> 00:13:34,200 그랬더니 랜덤 포레스트 정확도가 1.0으로 나오는 걸 볼 수가 있죠. 134 00:13:34,200 --> 00:13:40,400 이 말은 학습과 테스트 데이터셋의 결과가 정확히 일치한다. 135 00:13:40,400 --> 00:13:45,520 예측했을 때 결과도 일치한다는 것을 확인할 수가 있습니다. 136 00:13:45,520 --> 00:13:50,520 아큐리스 코어 안에 Y 테스트와 Y 프리드 두 개를 넣어줬죠. 137 00:13:50,520 --> 00:13:53,640 이거를 각각 출력까지 한번 해 볼게요. 138 00:13:53,640 --> 00:14:10,200 프린트 Y 테스트와 프린트 Y 프리드 확인해 보면 이렇게 결과가 나오는데 모두 두 개가 동일한 결과를 갖고 있습니다. 139 00:14:10,200 --> 00:14:17,799 정확히 일치해서 정확도가 1.0 100%로 나왔다는 것을 확인할 수가 있고요. 140 00:14:17,799 --> 00:14:26,400 분류가 너무 잘 되어 있는 데이터셋이기 때문에 조금 더 복잡한 데이터를 사용해서 확인해 보도록 할게요. 141 00:14:26,400 --> 00:14:31,599 총 샘플 수는 1000개로 넣어서 확인하도록 하겠습니다. 142 00:14:31,599 --> 00:14:40,679 데이터 시각화도 두 개의 주요 층만 확인해 줄 거고요. 실행해서 확인해 보시면 이렇게 나오는 것을 볼 수가 있죠. 143 00:14:40,679 --> 00:14:50,359 컴플렉스 데이터셋의 예측품종을 이렇게 다양하게 넣어 주었습니다. 144 00:14:50,359 --> 00:14:59,359 이렇게 다양하게 섞여서 화면에 나타날 수 있도록 시각화를 진행했고요. 145 00:14:59,359 --> 00:15:02,159 이제 모델별 차이를 확인할게요. 146 00:15:02,239 --> 00:15:06,200 먼저 랜덤 포레스트 사용을 해 줄 거고요. 147 00:15:06,200 --> 00:15:16,679 그래디언트 부스팅 클래스피어 그리고 스티킹 클래스피어 세 가지 확인해 보도록 하겠습니다. 148 00:15:16,679 --> 00:15:25,280 로지스틱 회기로 모델을 학습시켜서 결과까지 출력해 보도록 할게요. 149 00:15:25,280 --> 00:15:40,479 실행해서 결과를 확인했더니 랜덤 포레스트 정확도, 그래디언트 부스팅 정확도, 그리고 스티킹 정확도가 모두 다 다르게 나오는 것을 볼 수가 있죠. 150 00:15:40,479 --> 00:15:53,479 여기서 정확도는 0.95에서 0.98 정도의 정확도가 나오면 정확하게 모델이 잘 만들어졌다고 볼 수가 있는데 151 00:15:53,479 --> 00:15:57,679 지금은 0.76 이에요. 152 00:15:57,679 --> 00:16:03,640 랜덤 포레스트의 정확도는 0.763 정도로 나왔죠. 153 00:16:03,640 --> 00:16:11,799 이 말 뜻은 0.76 이라는 것은 76%의 정확도를 갖고 있다 라고 봐주시면 됩니다. 154 00:16:11,799 --> 00:16:21,760 이 3개의 랜덤 포레스트, 그래디언트 부스팅, 스티킹 3개에서는 랜덤 포레스트의 정확도가 가장 높게 나왔지만 155 00:16:21,760 --> 00:16:30,960 그래도 기준을 놓고 봤을 때, 전체적인 기준으로 봤을 때는 낮은 정확도를 갖고 있다고 파악을 해 줄 수가 있습니다. 156 00:16:30,960 --> 00:16:35,280 두번째로 svm 으로도 확인해 보도록 할게요. 157 00:16:35,280 --> 00:16:41,559 svm 모델도 셀킬런 안에 모듈로 들어가 있고요. 158 00:16:41,559 --> 00:16:47,520 인풋트를 받아 줄 때는 svc 대문자로 인풋트를 받아 주셔야 됩니다. 159 00:16:47,520 --> 00:16:52,119 정확도와 전체 레포트까지 확인해 보도록 할 거고요. 160 00:16:52,119 --> 00:16:56,919 첫 번째로 iris 데이터셋을 이용해서 확인해 보도록 할게요. 161 00:16:56,919 --> 00:17:09,359 실행해서 확인해 보시면 svm의 rbf 커너를 사용해서 결과가 1.0 으로 나온 거 확인할 수가 있습니다. 162 00:17:09,359 --> 00:17:13,680 아래쪽에 리포트로 나온 것까지 볼 수가 있고요. 163 00:17:13,680 --> 00:17:24,040 이렇게 봤을 때 f1 스코어, 리셀, 프레시전 모두 다 1.00 으로 나온 거 확인할 수가 있죠. 164 00:17:24,040 --> 00:17:28,400 이렇게 결과가 나온 것을 확인해 줄 수가 있고요. 165 00:17:28,400 --> 00:17:36,560 결과는 모두 다 1.0 으로 나왔기 때문에 정확하지만 과적합 되었을 수도 있다고 파악을 할 수가 있죠. 166 00:17:36,560 --> 00:17:41,280 조금 더 복잡한 데이터로 확인해 보도록 하겠습니다. 167 00:17:41,280 --> 00:17:46,359 조금 더 복잡한 데이터로 svm 확인해 보도록 할게요. 168 00:17:46,359 --> 00:17:54,119 이번에 makemoons라는 데이터셋을 활용해서 300개의 데이터 포인트를 만들어 주도록 할게요. 169 00:17:54,119 --> 00:18:01,680 실행해서 확인해 보시면 300개의 데이터 포인트가 만들어진 것을 확인할 수가 있고요. 170 00:18:01,680 --> 00:18:10,079 바로 svm 알고리즘을 이용해서 결과 출력해 보도록 할게요. 171 00:18:10,079 --> 00:18:17,520 데이터를 분리해 줘야 되죠. x-train과 x-test 그리고 y-train과 y-test로 넣어 줬고요. 172 00:18:17,520 --> 00:18:21,800 train-test-split 으로 나눠서 확인해 줄 거예요. 173 00:18:21,800 --> 00:18:30,920 0.3 으로 테스트 사이즈를 넣어 줬다는 것은 학습 데이터는 0.7 즉 70% 174 00:18:30,920 --> 00:18:36,680 그리고 테스트 데이터셋을 30% 로 넣었다 라고 봐주시면 됩니다. 175 00:18:36,680 --> 00:18:42,760 svm 모델을 생성했고요. 이번에도 rbf커널을 사용해 줬어요. 176 00:18:42,760 --> 00:18:50,119 그리고 fitting으로 x-train과 y-train 값을 넣어주고 예측 바로 가보도록 하겠습니다. 177 00:18:50,119 --> 00:18:56,719 실행해서 확인해 봤더니 0.92 정도로 결과가 나온 것을 확인할 수가 있죠. 178 00:18:56,719 --> 00:19:03,280 이 말은 92% 정도의 정확도를 가질 수가 있다고 봐주시면 됩니다. 179 00:19:03,280 --> 00:19:10,599 이런 형태로 다양하게 코드를 작성해 볼 수 있는 것 또 다양한 모델들이 있다는 것 180 00:19:10,599 --> 00:19:14,760 알고리즘 모델들이 있다는 걸 생각을 해 주시면 되겠습니다. 181 00:19:14,760 --> 00:19:21,439 그러면 지금까지 했던 내용을 간단히 복습해 보도록 하겠습니다. 182 00:19:21,439 --> 00:19:27,760 먼저 저희 지도학습에 대해서 배웠습니다. 지도학습 알고리즘 다양한 것들이 있었는데 183 00:19:27,760 --> 00:19:36,760 랜덤 포레스트 svm을 사용해 봤고요. 지도학습은 입력 데이터 x와 출력 레이블 y를 기반으로 학습해서 184 00:19:36,760 --> 00:19:42,400 새로운 데이터에 대한 예측을 수행하는 알고리즘이다 라고 했죠. 185 00:19:42,400 --> 00:19:52,400 랜덤 포레스트는 여러 개의 결정트리를 학습하고 앙상블 방식을 통해서 최종 예측을 수행하는 알고리즘이었고요. 186 00:19:52,400 --> 00:19:58,439 svm은 초평면을 사용해서 데이터를 분리하는 분류 알고리즘이죠. 187 00:19:58,439 --> 00:20:06,400 이렇게 해서 저희 오늘 배웠던 내용 간단히 복습해 보았고요. 여기까지 복습 진행했고요. 188 00:20:06,400 --> 00:20:13,680 제가 추가적으로 제공하는 자료 꼭 공부해 주시고 다음 시간에 수업 진행하도록 하겠습니다. 189 00:20:13,680 --> 00:20:17,760 오늘 수업도 수고 많으셨습니다.

05_파이썬으로 배우는 데이터 분석 심화 AI & 머신러닝


강의 개요와 학습 목표

  • 주제: 분류 알고리즘(2) – 랜덤 포레스트, SVM, 하이퍼파라미터 튜닝
  • 목표 1: 랜덤 포레스트와 SVM의 작동 원리 이해
  • 목표 2: GridSearchCV, RandomizedSearchCV를 이용한 하이퍼파라미터 튜닝 수행
  • 실습 데이터: Iris, scikit-learn 제공 복잡 데이터, make_moons 등

지도학습 개요

  • 지도학습: 입력 데이터 \(X\)와 레이블 \(Y\)로 학습 후 새로운 데이터의 \(Y\)를 예측하는 알고리즘
  • 분류: 범주형 레이블 예측 (예: 질병 진단, 스팸 메일 분류)
  • 회귀: 연속형 값 예측 (예: 주택 가격, 주가 예측)
  • 분류 알고리즘 예: 로지스틱 회귀, SVM, 결정트리, 랜덤 포레스트, KNN 등
  • 회귀 알고리즘 예: 선형 회귀, 다항 회귀, 릿지, 라쏘 등

랜덤 포레스트 개념과 특징

  • 정의: 여러 개의 결정트리를 독립적으로 학습하고, 그 예측을 앙상블(다수결/평균)하여 최종 예측하는 모델
  • 작동 원리
    • 여러 결정트리 개별 학습
    • 분류: 다수결 투표로 최종 클래스 결정
    • 회귀: 각 트리 예측값의 평균 사용
  • 장점
    • 여러 트리의 결합으로 과적합(오버피팅) 방지 효과
    • 대체로 높은 예측 정확도
  • 단점
    • 여러 트리를 학습·예측하므로 속도가 느릴 수 있음
    • 개별 트리 조합이라 전체 모델 해석이 어렵다

앙상블 학습과 세 가지 기법

  • 앙상블: 여러 모델을 결합해 단일 모델보다 예측 성능을 향상시키는 방법론
  • 배깅(Bagging)
    • 동일 유형 모델(주로 결정트리)을 독립적으로 학습
    • 결과를 평균 또는 투표로 결합
    • 랜덤 포레스트가 대표적 예
  • 부스팅(Boosting)
    • 이전 모델의 오차를 보완하도록 다음 모델을 순차적으로 학습
    • 대표: Gradient Boosting, XGBoost, LightGBM 등
  • 스태킹(Stacking)
    • 서로 다른 종류의 여러 모델 출력값을 상위 메타모델이 다시 학습
    • 하위 모델들의 조합을 통해 최적 성능을 노림

SVM과 초평면의 개념

  • SVM(Support Vector Machine): 초평면을 사용해 데이터를 분류하는 분류 알고리즘
  • 작동 원리
    • 두 클래스를 가장 잘 나누는 ‘최적의 초평면’을 탐색
    • 초평면에 가장 가까운 데이터 포인트들을 서포트 벡터라 함
    • 서포트 벡터와 초평면 사이의 거리(마진)를 최대화하는 방향으로 최적화
  • 초평면
    • 결정 경계 역할
    • 2차원: 직선, 3차원: 평면, \(n\)차원: \(n-1\)차원 부분공간
    • 가장 잘 분리: 초평면과 각 클래스의 가장 가까운 점 사이 거리(마진)가 최대
  • 장점
    • 고차원 데이터에 적합
    • 마진 최대화로 과적합 방지 효과
  • 단점
    • 대규모 데이터셋에서 학습·예측이 느릴 수 있음
    • 커널과 하이퍼파라미터(C, gamma 등) 설정에 성능이 크게 의존

하이퍼파라미터 튜닝의 의미와 필요성

  • 하이퍼파라미터: 학습 과정 전에 사용자가 설정하는 매개변수 (예: 결정트리의 max_depth, min_samples_split 등)
  • 튜닝 필요 이유
    • 부적절한 값 선택 시 모델 성능 저하
    • 적절한 값 선택 시 과적합·과소적합을 줄이고 일반화 성능 향상

하이퍼파라미터 최적화 방법

  • GridSearchCV
    • 사전 정의한 모든 하이퍼파라미터 조합을 전수 탐색
    • 장점: 완전 탐색으로 최적 조합을 찾을 가능성이 높음
    • 단점: 조합 수가 많으면 계산 비용·시간이 매우 큼
  • RandomizedSearchCV
    • 하이퍼파라미터 공간에서 랜덤 샘플링하여 일부 조합만 탐색
    • 장점: 계산 비용 절감, 큰 공간에서 빠르게 괜찮은 해를 찾기 용이
    • 단점: 샘플링 운에 따라 최적 조합을 놓칠 수 있어 최적 결과를 보장하지 못함

실습 구성과 모델 성능 비교

  • Iris 데이터 시각화
    • scikit-learn Iris 사용, 두 특성만 선택해 시각화
    • 세 품종(Setosa, Versicolor, Virginica)이 비교적 잘 분리되어 있음
  • Iris + 랜덤 포레스트
    • RandomForestClassifier 사용, 예: n_estimators=100 등 설정
    • 훈련/테스트 분할 후 정확도 1.0, y_test와 y_pred가 완전 일치
    • 데이터가 단순·잘 분리되어 있어 과적합 가능성도 함께 고려
  • 복잡 데이터셋 + 앙상블 비교
    • 샘플 수 1000개 수준의 복잡한 분포 생성 및 시각화
    • 랜덤 포레스트, Gradient Boosting, StackingClassifier를 동일 데이터에 적용
    • 정확도 예: 랜덤 포레스트 약 0.76 수준으로 세 모델 간 성능 차이 존재
    • 일반적으로 0.95~0.98면 매우 우수, 0.76은 상대적으로 낮은 편으로 해석
  • Iris + SVM
    • SVC + RBF 커널 사용
    • 정확도 1.0, classification report에서 precision/recall/F1 모두 1.00
    • 성능은 매우 높으나 과적합 가능성 염두
  • make_moons + SVM
    • 샘플 300개 생성, train:test = 7:3 분할
    • RBF 커널 SVM 적용, 정확도 약 0.92 (92%)
    • 복잡한 비선형 구조에도 비교적 우수한 성능

핵심 내용 정리

  • 지도학습: \(X, Y\)로 학습해 새로운 \(X\)의 \(Y\)를 예측하는 알고리즘군
  • 랜덤 포레스트: 여러 결정트리를 배깅 방식으로 결합해 과적합을 줄이고 정확도를 높이는 앙상블 모델
  • SVM: 마진을 최대화하는 최적 초평면을 찾아 분류를 수행하는 고차원 친화적 알고리즘
  • 하이퍼파라미터 튜닝: 모델 성능과 과적합/과소적합 제어를 위해 필수적인 설정 작업
  • GridSearchCV: 전수 탐색으로 최적 조합을 찾되 계산 비용이 큼
  • RandomizedSearchCV: 랜덤 탐색으로 비용을 줄이는 대신 최적 보장은 어려움
KEG
01_블렌더 입문자를 위한 SD 캐릭터 만들기
학습 01_블렌더 입문자를 위한 SD 캐릭터 만들기   완료 콘텐츠
영상 2025_blender3d_08.mp4
02_누구나 쉽게! 파이썬 베이직
학습 02_누구나 쉽게! 파이썬 베이직   완료 콘텐츠
영상 2024_PYTHON BASIC_10.mp4
03_기초부터 실무까지! 자바스크립트 (ES6) 마스터하기
학습 03_기초부터 실무까지! 자바스크립트 (ES6) 마스터하기   완료 콘텐츠
영상 2025_javascript_01.mp4
04_파이썬으로 배우는 데이터 분석 기초
학습 04_파이썬으로 배우는 데이터 분석 기초   완료 콘텐츠
영상 2024_DataAnalysis1_07.mp4
05_파이썬으로 배우는 데이터 분석 심화  AI & 머신러닝
학습 05_파이썬으로 배우는 데이터 분석 심화 AI & 머신러닝   현재 콘텐츠
영상 2024_DataAnalysis2_11.mp4
06_코딩이 처음이라도 괜찮아, 엔트리로 시작하자! part.1
학습 06_코딩이 처음이라도 괜찮아, 엔트리로 시작하자! part.1   완료 콘텐츠
영상 2024_Entry_6-5.mp4
07_코딩이 처음이라도 괜찮아, 엔트리로 시작하자! part.2
학습 07_코딩이 처음이라도 괜찮아, 엔트리로 시작하자! part.2   완료 콘텐츠
영상 2024_Entry_master_13_05.mp4
08_피부미용사 필기, 무조건 합격하는 완벽 로드맵!
학습 08_피부미용사 필기, 무조건 합격하는 완벽 로드맵!   완료 콘텐츠
영상 20250408_국가자격증_미용사(피부)_김효진_8회차_0428종편_unit3.mp4
09_Microsoft 공식 자격증 MCF AI-900
학습 09_Microsoft 공식 자격증 MCF AI-900
영상 MCF AI-900_1-1.mp4
10_Unity 공식 자격증 UCU Programmer
학습 10_Unity 공식 자격증 UCU Programmer   완료 콘텐츠
영상 UCU programmer_1-3.mp4
11_30일이면 비전공자도 합격하는 PCCE 완벽 코스!
학습 11_30일이면 비전공자도 합격하는 PCCE 완벽 코스!   완료 콘텐츠
영상 PCCE_06-4.mp4
12_Adobe 공식 자격증 ACP After Effects
학습 12_Adobe 공식 자격증 ACP After Effects
영상 ACP_After Effects_01.mp4
13_영상에 감정을 입히는 기술, 컬러그레이딩  다빈치 리졸브로 배우는 실무 클래스_입문 편
학습 13_영상에 감정을 입히는 기술, 컬러그레이딩 다빈치 리졸브로 배우는 실무 클래스_입문 편   완료 콘텐츠
영상 colorgrading 01.mp4
14_하루 20분! 왕초보도 성공하는 '아이패드 드로잉 X 굿즈 수익화'
학습 14_하루 20분! 왕초보도 성공하는 '아이패드 드로잉 X 굿즈 수익화'   완료 콘텐츠
영상 3-3_v2.mp4
15_왕초보도 따라하는 완성도 최강의 버츄얼캐릭터
학습 15_왕초보도 따라하는 완성도 최강의 버츄얼캐릭터   완료 콘텐츠
영상 004Vtuber 디자인 01.기획서 종편 FHD 0616.mp4
16_실무에 바로 쓰는 SketchUp & Enscape 건축 모델링
학습 16_실무에 바로 쓰는 SketchUp & Enscape 건축 모델링   완료 콘텐츠
영상 250701_KKJ_lecture_09_유닛_01_자막.mp4
01 ACP Illustrator CC2023
학습 01 ACP Illustrator CC2023   완료 콘텐츠
영상 01 ACP Illustrator CC2023.mp4
02 ACP Premiere pro CC2023
학습 02 ACP Premiere pro CC2023   완료 콘텐츠
영상 02 ACP Premiere pro CC2023.mp4
03 ACP Photoshop CC2023
학습 03 ACP Photoshop CC2023   완료 콘텐츠
영상 03 ACP Photoshop CC2023.mp4
04 ACP Indesign CC2023
학습 04 ACP Indesign CC2023   완료 콘텐츠
영상 04 ACP Indesign CC2023.mp4
05 멘토씨리즈 포토웍스
학습 05 멘토씨리즈 포토웍스   완료 콘텐츠
영상 05 멘토씨리즈 포토웍스.mp4
06 확실하게 마스터하자! 디테일 일러스트
학습 06 확실하게 마스터하자! 디테일 일러스트   완료 콘텐츠
영상 06 확실하게 마스터하자! 디테일 일러스트.mp4
07 인포그래픽, 정보가 한눈에 보이는 Visual thinking
학습 07 인포그래픽, 정보가 한눈에 보이는 Visual thinking
영상 07 인포그래픽, 정보가 한눈에 보이는 Visual thinking.MP4
08 웹툰제작
학습 08 웹툰제작   완료 콘텐츠
영상 08 웹툰제작.mp4
09 기초부터 다져보는 누크
학습 09 기초부터 다져보는 누크   완료 콘텐츠
영상 09 기초부터 다져보는 누크.mp4
10 누크의 3D Workflow
학습 10 누크의 3D Workflow
영상 10 누크의 3D Workflow.mp4
11 기초부터 시작하는 MAYA 렌더링
학습 11 기초부터 시작하는 MAYA 렌더링   완료 콘텐츠
영상 11 기초부터 시작하는 MAYA 렌더링.mp4
12 기초부터 시작하는 MAYA 모델링
학습 12 기초부터 시작하는 MAYA 모델링   완료 콘텐츠
영상 12 기초부터 시작하는 MAYA 모델링.mp4
13 기초부터 시작하는 MAYA 애니메이션
학습 13 기초부터 시작하는 MAYA 애니메이션
영상 13 기초부터 시작하는 MAYA 애니메이션.mp4
15 Blender로 인테리어 영상 제작하기
학습 15 Blender로 인테리어 영상 제작하기   완료 콘텐츠
영상 15 Blender로 인테리어 영상 제작하기.mp4
16 멘토씨리즈 자바
학습 16 멘토씨리즈 자바   완료 콘텐츠
영상 16 멘토씨리즈 자바.mp4
17 스크래치로 공부하는 프로그래밍 기초
학습 17 스크래치로 공부하는 프로그래밍 기초   완료 콘텐츠
영상 17 스크래치로 공부하는 프로그래밍 기초.mp4
20 누구나 쉽게! Git&GitHub
학습 20 누구나 쉽게! Git&GitHub   완료 콘텐츠
영상 20 누구나 쉽게! Git&GitHub.mp4
23 디지털 드로잉 기본기 완전판
학습 23 디지털 드로잉 기본기 완전판   완료 콘텐츠
영상 23 디지털 드로잉 기본기 완전판.mp4
24 그림스타일에 딱 맞는 인체 연구
학습 24 그림스타일에 딱 맞는 인체 연구   완료 콘텐츠
영상 24 그림스타일에 딱 맞는 인체 연구.mp4
25 뱀파이어 서바이벌로 배우는 언리얼 C++
학습 25 뱀파이어 서바이벌로 배우는 언리얼 C++   완료 콘텐츠
영상 25 뱀파이어 서바이벌로 배우는 언리얼 C++.mp4
26 하나하나 꼼꼼히! 웹툰 드로잉 네 걸음
학습 26 하나하나 꼼꼼히! 웹툰 드로잉 네 걸음   완료 콘텐츠
영상 26 하나하나 꼼꼼히! 웹툰 드로잉 네 걸음.mp4
27 하나하나 꼼꼼히! 웹툰 드로잉 세 걸음
학습 27 하나하나 꼼꼼히! 웹툰 드로잉 세 걸음   완료 콘텐츠
영상 27 하나하나 꼼꼼히! 웹툰 드로잉 세 걸음.mp4
28 하나하나 꼼꼼히! 웹툰 드로잉 두 걸음
학습 28 하나하나 꼼꼼히! 웹툰 드로잉 두 걸음   완료 콘텐츠
영상 28 하나하나 꼼꼼히! 웹툰 드로잉 두 걸음.mp4
29 하나하나 꼼꼼히! 웹툰 드로잉 첫걸음
학습 29 하나하나 꼼꼼히! 웹툰 드로잉 첫걸음   완료 콘텐츠
영상 29 하나하나 꼼꼼히! 웹툰 드로잉 첫걸음.mp4
30 쉽고 재밌게 배우는 모션그래픽_애프터이펙트1
학습 30 쉽고 재밌게 배우는 모션그래픽_애프터이펙트1   완료 콘텐츠
영상 30 쉽고 재밌게 배우는 모션그래픽_애프터이펙트1.mp4
31 쉽고 재밌게 배우는 모션그래픽_애프터이펙트2
학습 31 쉽고 재밌게 배우는 모션그래픽_애프터이펙트2   완료 콘텐츠
영상 31 쉽고 재밌게 배우는 모션그래픽_애프터이펙트2.mp4
32 기초부터 심화까지 한 번에 배우는 영상편집_프리미어 프로
학습 32 기초부터 심화까지 한 번에 배우는 영상편집_프리미어 프로   완료 콘텐츠
영상 32 기초부터 심화까지 한 번에 배우는 영상편집_프리미어 프로.mp4
33 웹소설 작가 도전하기
학습 33 웹소설 작가 도전하기
영상 33 웹소설 작가 도전하기.mp4
34 올인원 DBMS!! 설계부터 운영까지!!
학습 34 올인원 DBMS!! 설계부터 운영까지!!
영상 34 올인원 DBMS!! 설계부터 운영까지!!.mp4