Orange를 활용한 코딩 없는 AI 데이터 분석 - Lv.3 예측 머신러닝 분석 강좌의 맛보기 강의입니다.
이번 영상에서는 지도학습 머신러닝 모델들이 모두 공통으로 따르게 되는 워크플로우에 대해서 함께 알아보도록 하겠습니다 우리는 머신러닝에서 흔히 분석 모델이라고 하는 표현을 쓰는데요. 예를 들어서 회귀분석이라던가 뭐 우리가 아까 본 것처럼 콘스탄트, KNN, 트리 등등등 굉장히 많은 분석 모델들이 있죠. 그런데 조금 더 엄밀하게 말하자면 이런 것들은 처음 상태에서는 모델이 아닙니다. 걔네들은 예를 들어서 회귀분석을 중심으로 놓고 보면 회귀분석은 처음에는 y는 베타 1 x 1 더하기 띵띵띵띵 더하기 베타 0 라고 하는 형태의 사실 아직 베타들이 결정되지 않은 상태의 어떠한 수식 요 상태를 유지하게 됩니다 우리가 이것을 알고리즘 이라고 불러요 알고리즘 아직은 베타가 정해져 있지 않은 거죠 데이터가 있어야 이러한 각각의 데이터 포인트와 이 수식이 그리게 되는 직선 사이의 거리를 재서 이걸 최소화하는 베타가 그 다음번에 결정이 되게 되는 거죠 그러니까 처음 상태에서는 베타가 얼마인지 아무도 몰라요 왜냐면 데이터가 없으니까 이 상태의 알고리즘이 데이터를 받습니다 데이터를 받으면 알고리즘이 데이터를 받아서 학습이 일어나게 됩니다 그래서 학습하고 있는 상태의 알고리즘이 뭔가 이제 베타를 정하기 위해서 막 공부를 하고 있는 거예요 이 상태는 이제 학습하고 있는 애야, 얘는 공부하고 있어 라는 뜻으로 우리가 이것을 learner라고 부릅니다 공부하는 애들인거죠. 알고리즘이 가중치 베타를 정하고 싶어서 공부를 막 하고 있다 라고 하면 이 상태를 러너라고 부릅니다. 자 이제 공부를 끝냈어요. 열심히 책도 보고 문제집도 풀고 등등등등 의견 발표도 하고 여러가지를 통해서 공부를 끝냈습니다. 그럼 이제 공부를 다 했네요. 시험 합격 통과! 그러면 그때 비로소 이 애를 우리가 모델이라고 불러줍니다. 정확히 말하면 분석 모델인 거죠. 알고리즘이 가중치를 결정하고 있는 그 학습을 하고 있는 상태는 러너 그리고 가중치가 최종적으로 결정돼서 예를 들어서 베타1은 3이라고 할 거고 베타0은 7이라고 하는 게 좋겠어라고 결정이 나면 그러면 우리가 그 상태를 분석 모델이라고 부릅니다. 수식이 바뀌어있는 거죠. 그때 어떻게 돼요? y는 7x1 더하기 띵띵띵띵 더하기 예를 들어서 10 이런 베타가 얼마인지가 결정된 상태가 되는 겁니다. 수식이 만들어지면 이 상태에서 새로운 x가 들어왔을 때 x가 예를 들어서 3이라면 그때 결과는 예를 들어 31이군요. 라고 하는 결과를 낼 수가 있게 되는 거죠. 머신러닝은 이러한 워크플로우를 따라가게 됩니다 자 그럼 이러한 워크플로우를 그대로 볼 수 있는 분석 도구인 오렌지에서 한번 실행해 보도록 하겠습니다 그러면 얘기한 그대로의 순서를 한번 따라가 볼까요? 맨 처음 상태에서는 그냥 y는 베타 x 플러스 베타 2 x2 더하기 등등 베타 0 라고 하는 아직은 베타들이 정해지지 않은 상태의 그러한 수식이 존재하고 있는 거죠. 알고리즘이 존재하고 있습니다. 우리가 그것을 선형 회귀 알고리즘 이라고 하겠습니다. 왼쪽에 있는 모델 탭에서 리니어 리그레이션 이라고 하는 것을 클릭해 볼까요? 리니어 리그레이션을 클릭해서 여기 가운데쯤에 갖다 놓도록 하겠습니다. 이 상태가 뭐죠? 알고리즘인 상태입니다. 여기는 아직 아무것도 결정되지 않았어요. 그냥 얘는 아무것도 정해지지 않은 어떠한 수식인 상태예요. 이 상태로 얘가 공부할 데이터를 끌어와 볼까요? 여러분께서는 마우스 오른클릭하시고 파일 탭을 열어서 더블클릭 하신 다음에 새로운 파일을 갖고 와 볼게요 이미 우리가 이걸 갖고 왔군요 그래도 시스파일 01-1번에 있는 아이스크림 판매량 학습 이라고 하는 데이터를 가져오겠습니다 이 파일에는 4개의 피처가 있고 아이스크림 판매량이 있네요 아까는 많이 스킵 했지만 이번에는 그냥 요 정도만 할까요 X가 2개여도 가능한 거니까 우리가 이것을 피처라고 해 줄까요 습도는 피처로 하겠다 주말 여부는 스킵해 주도록 하죠 그리고 아이스크림 판매량을 내가 추정할 거야 라고 타겟이라고 정리해 주도록 하겠습니다 우리는 2개의 X, X1, X2인 거죠 그리고 하나의 Y가 존재하고 있는 다중 선형 회귀 분석 우리가 엑셀에서 할 때는 1개를 했지만 이제 X가 2개인거죠 2개의 X를 가진 다중 선형 회귀 분석을 할 수 있는 그러한 데이터셋을 만들었습니다 apply 해볼게요 그리고 닫습니다 혼란이 없도록 하기 위해서 얘는 학습 데이터 정도로 바꿔줄까요 학습 정도로 바꾸겠습니다 더블클릭하셔도 좋고, 마우스 오른클릭하셔서 리네임 하셔도 괜찮구요. 이렇게 보시면 리네임 하셔도 괜찮고 단축키 F2 해서 수정하셔도 되겠습니다 자 그러면 이 리니어 리그레이션이라고 하는 베타가 정해지지 않은 알고리즘에게 이렇게 학습 데이터를 가져다 줬습니다 이 상태 이 상태에는 뭐죠? 러너가 된거죠 이제 학습이 일어나게 되는 거죠 이 데이터를 학습해서 러닝을 합니다 러닝을 했어요 러닝을 한 이 결과를 러닝을 하고 있는데 얘가 얼마나 뛰어난가? 라고 하는 것을 보기 위해서 공부하는 거니까 공부하는 중간중간 시험도 보고 막 이러잖아요 그럼 시험을 한번 볼까요? 테스트 앤 스코어 끌고 가셔서 이렇게 끌고 가셔서 놓으시면 여러 가지 위젯이 뜨고요 테스트 앤 스코어라고 하는 게 보이실 겁니다 한마디로 시험을 보는 거죠 뭐가 나가고 있습니까? 러너가 나가고 있죠 데이터를 받아서 알고리즘이 학습 상태에 들어가 있고 이것은 러너인 거죠 그래서 아직은 학생이다. 그래서 이 학생의 테스트를 봅니다. 이 학습 데이터를 가지고 어디 공부, 배운 거 잘 공부했는지 그러면 시험 범위가 되는 이 학습 데이터를 받았어요. 이걸 공부했으니까 배운 거에서 시험 나오는 거잖아요. 배운 범위 내에서 시험을 보겠다. 테스트 앤 스코어로 연결을 했습니다. 그러면 더블 클릭해서 눌러보면 얘가 몇 점 받았다라고 하는 점수표가 있는 걸 보실 수 있어요. 말 그대로 테스트이기 때문에 이 테스트한 성적이 나오게 되는 거죠. 아직 우리는 이 점수표를 어떻게 읽는지 배우지 않았습니다. 하지만 어쨌든 성적이 나오는구나 라고 하는 것을 알 수가 있는 거죠. 만약에 여기 연결되어 있는 알고리즘이 리니어 리그레이션 하나가 아니라 뭐 딴 거 하나 더 해볼까요? 뭐 할까요? 그냥 트리 해볼까요? 트리를 클릭해서 여기 있네요. 트리도 시험을 보게 되는 거고 이 시험에 대해서 트리의 시험 성적표 그리고 리니어 리그레이션의 시험 성적표라고 하는 게 나오는 걸 보실 수가 있습니다. 학생들이 시험을 보는 거죠. 알고리즘이 공부를 해서 시험을 보는 러너가 됐고요. 우리는 헷갈리니까 얘는 지우도록 할까요? Tree는 Delete 키를 눌러서 삭제했습니다. 이 상태, 가장 기본적인 상태. 이제 학습을 다 했습니다. 시험 점수도 충분한 것 같아요. 그럼 앞으로 얘를 실전에 투입을 하겠습니다. 실전에 투입할 때는 얘를 뭐라고 부르게 되죠? 똑같은 애인데 그때는 이것을 분석 모델이라고 부르는 거죠. 실전에 투입하기 위해서 실전용 데이터 하나 갖고 올까요? 마찬가지로 파일을 여시고 파일을 더블클릭하셔서 실습 자료에서 찾겠습니다. 01-2번에 아이스크림 판매량 예측이라고 하는 데이터를 찾으셔서 열기 누르시면 지금 보시는 것처럼 온도와 습도와 주말 여부라고 하는 게 있어요. 아까랑은 다르네요. 아까 같은 경우는 하나 더 있었죠. 4개의 피처가 있었습니다. 우리가 원하는 타겟인 그래서 아이스크림이 몇 개 팔렸는데 라고 하는 판매량 이라고 하는 정보가 있어서 우리가 그것을 타겟으로 지정해서 회귀를 돌릴 수가 있었죠. 근데 실전에서는 어차피 과거에 몇 개 팔렸는가 그걸 알고 있는 정답은 이미 학습 과정에서 다 사용이 된 거고 정답이 있는 건 배울 때 정답이 있는 겁니다. 정답이 있는 상태 타겟이 있는 상태로 학습이 일어났다, 정답이 있는 학습이다 라는 뜻으로 우리가 그것을 지도학습이라고 부른 거구요. 실제로 이제 분석 모델 공부 다 한 거예요. 공부 다 하고 졸업을 하고 이제 실전에 딱 투입이 돼야 되잖아요. 그럼 얘의 임무는 앞으로 얼마가 될까? 라는 걸 예측하는 예측 모델로서의 역할이 중요해지는 거죠. 그때는 정답이 있을 수가 없죠. 정답이 있는 게 아니라 이게 얼마 될까? 라는 걸 얘가 예측해 내야 되죠. 그래서 예측용에서는 타깃이 없어도 상관이 없습니다. 편의상 주말 여부는 그냥 스킵해 주겠습니다. 스킵하면 여전히 이 예측을 하는 데에 필요한 온도와 습도라고 하는 두 개의 피처가 있게 되겠죠. 저 학습의 결과 가중치인 베타가 얼마로 결정됐는지는 모르겠습니다. 하지만 처음에는 두 개의 x가 있었으니까 베타0 더하기 베타1, 예를 들어서 온도 곱하기 온도가 몇 도인가 더하기 베타2 곱하기 습도가 몇 퍼센트인가 라고 하는 상태로 이제 러닝을 했고 러닝의 결과 여기 각각에 들어가야 될 적절한 값이 뭔가를 이제는 알고 있겠죠. 그게 얼만지 우리는 잘 모르겠습니다. 하지만 모델이 됐다는 건 이 가중치들, 이 베타들이 모두 결정이 되었다. 3이면 3이고 5면 5고 7이면 7이고 이렇게 숫자로 결정이 되었다. 숫자가 다 결정되면 온도가 몇 도이고 습도가 몇 퍼센트냐라고 하는 데이터만 주면 아이스크림이 몇 개 팔릴까 라고 하는 걸 추정을 할 수가 있는 상태가 되겠죠. 이게 바로 모델입니다. 자 스킵하시고 아래쪽에 Apply 누르셔서 Apply 누르시고 창을 닫은 다음에 그러면 이 데이터를 가지고 Predictions 추정을 하겠습니다. 파일을 쭉 끌어서 보시면 끝에 Predictions, 예측하겠다 라고 하는 것을 보실 수가 있어요. 예측할 겁니다. 이 데이터를 예측하고 싶어요. 지금 상태로 더블클릭해 보시면 아무것도 안 보여요. 그냥 이 데이터에는 자, 그럼 문제입니다. 온도가 30도고 습도가 50%일 때 아이스크림 몇 개 팔릴까요? 라고 하는 걸 물어보고 있는 거죠. 하지만 현재는 예측이 없어요. 왜냐면 예측할 수 있는 주체, 분석 모델이 없기 때문인 거죠. 이 예측을 실제로 실행하게 될 주체를 우리가 분석 모델이라고 부릅니다. 그게 누굽니까? 알고리즘이기도 했고, 러너이기도 했고, 이제 가중치가 결정이 되어서 분석 모델의 자격을 갖추게 된 예인 거죠. 이제는 Linear Regression 모델이 된 아이를 쭉 끌어다가 Prediction에 연결을 해 주시면 뭐가 나간다고 되어 있습니까? 지금 보면 모델이 Prediction을 하러 간 거죠. 똑같은 곳에서 나갔는데 이 상태는 학생으로서 평가를 받는 거였고, 이제는 가중치 다 결정됐고 모델로서 예측을 하러 간다 라는 걸로 보실 수 있습니다. 더블클릭해 보시면 157개로 예측한다 머신러닝으로 무언가를 예측할 때 기본적으로 모든 머신러닝의, 특히 지도학습 모델들은 지금 보고 계시는 이 기본 모양, 이 기본적인 워크플로우를 따라가게 됩니다. 처음에 알고리즘이 있고 데이터를 학습하게 되고, 이 학습하는 것, 우리가 이 데이터, 이 학습하는 데이터, 트레이닝 데이터, 학습 데이터 학습을 한 다음에 평가를 봅니다. 평가를 보고 평가가 끝나면 이제 본격적으로 예측에 사용이 되게 되는 구조인 거죠. 이것은 회귀 분석 뿐만이 아니라 모든 머신러닝 모델이 마찬가지다 라고 말씀드릴 수 있어요. 예를 들어서 이 상태에서 Linear Regression을 Delete 치우겠습니다. Linear Regression 지우겠습니다. 그리고 이 자리에 Linear Regression이 아니라 예를 들어서 나무 라고 하는 또 다른 모델을 이 자리에 갖다 놓을게요. 지금 얘는 뭐예요? 알고리즘인 거죠. 이 알고리즘이 어떤 알고리즘인가는 우리 아직 개별적으로 보진 않았습니다. 하지만 얘는 지금 알고리즘이에요. 하지만 똑같이 데이터를 받을 거고요. 이제 러너가 됐고요. 시험을 볼 거고요. 그래서 시험 성적표를 받았습니다. 시험 성적표를 통해서 가중치, 그 수식의 모양이 Linear Regression처럼 Y는 베타 이런 모양은 아니겠으나 어쨌든 어떠한 형태의 수식을 가지고 있는데 그걸 이제 가중치를 얘가 다 정했어요. 그러면 이제 Prediction, 예측하는 업무를 수행할 수가 있다. 그래서 Prediction 하면 얘는 145개로 예측됩니다 라고 결과 값을 내놓게 되는 거죠. 지금 보시는 것처럼 머신러닝을 이용해서 무언가 내가 원하는 것, 숫자 값을 예측하든 아니면 어떤 클래스에 속해야 되는지 분류를 하든, 이 방법은 지금 이 기본적인 워크플로우를 전혀 벗어나지 않습니다. 똑같습니다. 계속 말씀드리지만 이 자리에 누가 들어가느냐의 문제일 뿐이에요. 이 자리에 이걸 넣을 거냐 저걸 넣을 거냐 그걸 넣을 거냐의 차이일 뿐, 방법은 똑같다 라고 하는 거죠. Lv.3 예측 머신러닝 모델의 워크플로우 예측 머신러닝 모델의 워크플로우 X에 대해서 트리는 145라고 예측했다, Linear Regression은 157이라고 예측했다 라고 하는 걸 이렇게 보실 수가 있죠. 마찬가지로 다른 모델들 3개든 4개든 이렇게 쭉 갖다 놓고 다 똑같이 연결하시고 다 똑같이 연결하시면 여러분이 원하시는 수많은 예측 다 얻어내실 수가 있습니다. 그러니까 우리가 처음 이야기한 걸로 돌아가서 나는 하나만 알고 하나만 쓰겠다 라고 하는 그런 생각을 할 필요가 없다는 거죠. 방법이 간단하니까 어차피 나는 그냥 갖다 놓고 연결하면 되는 거고 그 결과를 갖다 쓰면 되는 거잖아요. 그러니까 우리한테 필요한 건 뭐예요? 어차피 여러 개를 별로 어렵지 않게 다 쓸 수가 있으니까 우리한테 필요한 건 그렇다면 누구의 답변을 선택할까? 라는 것만 알면 되는 거죠. 누구의 답변을 알아야 되는 걸까? 이 중에 여러 알고리즘한테 물어보니까 얘는 100개라고 했고 얘는 150개라고 했고 얘는 200개라고 했다면, 그러면 누가 제일 좋은 답안을 만들었는가? 만들었는가라기보다 누가 제일 좋은 답안을 만들 수 있는 가장 똘똘한 애인가? 가장 문제를 잘 맞추는 애인가? 라고 하는 것만 판단할 수가 있으면 된다. 그러면 그 판단을 어떻게 해요? 여기서 하는 거죠. Test & Score, 시험 성적 높은 애가 제일 잘하는 애인 거잖아요. 그러니까 이 시험 성적을 맞추는, 시험 성적과 관련되어 있는 성적표 보는 방법 성적표 보는 방법을 정확히 알고 있으면 그러면 얼마든지 여러분께서는 다양한 모델을 활용해서 원하시는 결과를 얻으실 수가 있다라는 겁니다. 그래서 모든 머신러닝 워크플로우, 우리가 이제 앞으로 여러 가지 알고리즘들 막 다룰 거에요. 그러한 과정에서 여러분께서는 그 해당하는 모델들 하나하나 할 때 기본적으로 사용하는 방법은 결국 다 이 모양으로 사용하게 된다라고 하는 것을 명확하게 숙지하시면 조금 더 뒤에서는 개념적인 설명을 말씀드리더라도 여러분이 조금 더 그림을 그려가면서 이해하시는 데 큰 도움이 될 거다 라고 생각이 됩니다.
