래피드마이너 데이터 초간편 분석 6편!!데이터 전처리~~!!지금까지 저희는 잘 정제되어 있는 데이터를 불러와 사용하였습니다.하지만 실제 데이터들은 불완전하고 정제되어 있지 않은 것이 대부분입니다.분석을 위해 데이터 전처리는 반드시 거쳐야 하는 과정이며데이터 분석 단계 중 가장 많은 시간이 소요되는 단계입니다.지금부터 데이터 전처리에 도움이 되는 몇 가지 오퍼레이터들을 소개시켜드리겠습니다. 연습 첨부파일 : https://blog.naver.com/plantobiz/221564211625 프로세스 패널에 'read excel' 오퍼레이터를 드래그 앤 드롭하고Import Configuration Wizard를 눌러 데이터 파일을 선택해 줍니다.출력포트와 결과포트를 연결하고 프로세스를 실행합니다.실행 결과를 보면 데이터에서 몇 가지 문제점들을 발견할 수 있습니다.Statistics 탭으로 들어가 더 자세히 살펴봅시다.'Gender' 와 'Age' 칼럼에 missing 값이 있음을 확인할 수 있습니다.'gender'를 클릭하면 4가지 값이 들어있는 것을 알 수 있습니다.세부정보를 살펴보면 'male' 대신 'm'이 하나 있고,female 중 하나에는 공백이 들어가 있음을 확인할 수 있습니다.'Churn' 칼럼에는 missing 값이 96개 존재하며,'Name' 칼럼은 'Santiago Cruz'라는 사람이 두 번 중복되어 나타나므로 제거해야 할 항목이 될 수도 있습니다.우리 분석의 최종 목표는 고객의 충성도를 예측하는 것입니다.충성도 정보가 있는 고객들로 모델을 만들고충성도 정보가 없는 고객들을 예측할 수 있도록 데이터를 분할시켜 주어야 합니다.위의 문제점들을 하나씩 해결해 나가도록 하겠습니다.1. 공백제거데이터 앞 뒤의 공백 제거에는 'Trim' 오퍼레이터를 사용할 수 있습니다.모든 칼럼의 공백을 제거할 것이므로 파라미터 값은 default 그대로 사용합니다.'Trim'을 클릭하고 마우스 오른쪽 버튼을 눌러 나오는 Breakpoint Before을 클릭하고 실행시켜줍니다.Trim 전후의 결과를 비교해 보도록 하겠습니다.실행결과 4번째 행 female에 포함되어 있던 공백이 없어진 것을 확인할 수 있습니다.Breakpoint를 넣게 되면 간단한 방법으로 실행 전후의 결과를 확인할 수 있으므로유용하게 이용됩니다.Breakpoint를 이용하고 싶지 않다면 다시 한번 선택해 체크표시를 풀어주면됩니다.2. missing 값 제거missing 값 제거에는 'Filter Examples' 오퍼레이터를 사용할 수 있습니다.파라미터 패널에서 Add Filters를 클릭하고'Gender' 와 'Age'를 추가하고 드롭다운 메뉴에서 missing이 아닌 값만 가져오겠다는is not missing을 선택해 줍니다.'Filter Examples'에 Breakpoint를 걸고 모든 프로세스를 연결하여 실행시켜 줍니다.아래 하단을 보면 missing 값이 제거되어데이터의 개수가 999개에서 997개로 바뀐 것을 확인할 수 있습니다.3. 중복 제거중복 값 제거에는 'Remove Duplicates' 오퍼레이터 사용할 수 있습니다.'Remove Duplicates' 오퍼레이터를 프로세스 패널로 드래그 앤 드롭 하고 프로세스를 실행합니다.실행 결과, 중복행이 제거되어데이터의 개수가 997개에서 996개로 바뀐 것을 볼 수 있습니다.4. 값 바꾸기값을 변경할 때는 'Replace' 오퍼레이터 사용할 수 있습니다.'Gender'의 m을 male으로 바꾸기 위해파라미터 패널에서 attribute filter type을 gender라는 단일 속성에 대해 작업하도록 설정해 줍니다.replace what에는 'm'을 replace by에는 'male'을 적어줍니다.프로세스를 실행하고 결과를 확인해봅시다.Gender 값이 모두 이상하게 변했습니다.RapidMiner에서 모든 문자 'm'을 대체한 것입니다.어떻게 Gender 값을 제대로 수정할 수 있을까요?단어의 'm'이 아닌 문자 'm' 만 바꾸려면 정규표현식을 사용해야 합니다.정규표현식이란 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어를 의미합니다.단일 문자를 식별하기 위해 사용할 표현식은 \b[ ]\b 입니다.파라미터 패널에서 replace what의 찾기 표시를 클릭한 후Regular Expression을 \b[m]\b로 바꿔줍니다.다시 실행시키면 결과가 올바르게 나온 것을 확인할 수 있습니다.5. 데이터 분할머신러닝 알고리즘을 학습시킬 때 모델이 얼마나 잘 학습되었는지 평가할 기준이 필요합니다.가장 흔하게 사용되는 방법은 수집된 데이터를'Training Set'(학습데이터셋), 'Testing Set'(테스트데이터셋) 으로 나누어 사용하는 것입니다.label 값이 있는 데이터(학습데이터)와 label 값이 없는 데이터(테스트데이터)로 분할해 주도록 하겠습니다.* 현 데이터에서 label 값은 'Churn' 칼럼을 말합니다.프로세스 패널에 'Filter Examples' 를 드래그 앤 드롭합니다.Add Filters를 클릭하고 'Churn'이 missing 이 아닌 데이터를 걸러내기 위해 설정을 조정합니다.store 오퍼레이터를 드래그 앤 드랍하고, 'Filter Examples' 오퍼레이터 unmatched 포트와 연결시켜줍니다.데이터는 'unlabeled customers'라고 저장해줍니다.이 과정은 'Churn'이 missing인 데이터즉, Testing data를 저장하는 과정입니다.6. 불필요한 칼럼 제거사용하고자 하는 칼럼을 지정해주고 싶을 때는 'Select Attribute' 오퍼레이터 사용할 수 있습니다.현재 Store로 저장시키고자 하는 데이터는'Churn' 칼럼에 missing 값만 있기 때문에 공간을 절약하기 위해 해당 칼럼을 제거하여 줍니다.'Select Attribute'를 프로세스 패널의 'Filter Examples'와 'Store' 사이에 연결시켜 줍니다.파라미터 패널에서 attribute filter type을 single로 attribute는 churn으로 설정해줍니다.지금 설정은 'Churn' 칼럼만 선택해 준 것이기 때문에invert selection을 체크해주어'churn'을 제외한 나머지 칼럼들만 선택하게 설정해줍니다.데이터 전처리를 하다보니 프로세스 패널이 가득 차 공간이 복잡하므로프로세스 패널을 간단하게 정리해보도록 하겠습니다.데이터 정리에 쓰인 모든 오퍼레이터를 드래그 하고, 마우스 오른쪽 버튼을 클릭하여Move into new subprocess 를 선택합니다.데이터 정리에 사용된 모든 오퍼레이터를 묶어 하나의 하위프로세스로 만들어 줌으로서프로세스가 간편하게 정리된 것을 확인할 수 있습니다.마지막으로 training set을 정리하도록 하겠습니다.먼저, 데이터 분석에 불필요한 정보인 'Name'을 제거합니다.'Select Attribute'를 드래그 앤 드롭하고 subprocess와 연결시켜 줍니다.'Name'을 없애주기 위해서'Attribute Filter Type'에는 single을 attribute에는 Name을 선택하고Invert Selection을 체크해 줍니다.모델이 예측할 변수를 알려주기 위해 'Set Role' 오퍼레이터를 사용하여'Churn' 칼럼을 label로 설정해줍니다.'Store' 오퍼레이터를 결과 포트에 연결하고 프로세스를 실행시켜 줍니다.실행 결과, 두 개의 데이터 셋이 만들어 진 것을 확인할 수 있습니다.지금까지 데이터 전처리하는 방법에 대해 알아보았습니다.오늘 사용한 오퍼레이터 외에도래피드 마이너는 다양한 전처리 오퍼레이터를 제공합니다.자세한 기능은 오퍼레이터 패널의 Cleansing 폴더를 참고하시기 바랍니다~!!더 자세한 기능이 궁금하시다면플랜투비즈니스컨설팅으로 문의해주세요~~~