기계 학습을 위한 데이터 준비: 단계별 가이드
게시 됨: 2023-07-07몇 년 전, Spotify가 추천 엔진을 작업할 때 기계 학습(ML) 알고리즘 훈련에 사용되는 데이터의 품질과 관련된 문제에 직면했습니다. 그들이 데이터 준비 단계로 돌아가서 데이터 정리, 정규화 및 변환에 추가 노력을 투자하기로 결정하지 않았다면 청취 경험이 그다지 즐겁지 않았을 가능성이 있습니다.
ML용 데이터를 철저히 준비함으로써 스트리밍 플랫폼은 사용자의 청취 선호도를 정확하게 예측하고 고도로 개인화된 음악 추천을 제공하는 강력한 ML 엔진을 훈련할 수 있었습니다. Spotify는 ML용 데이터를 준비할 때 기업이 저지르는 중요한 실수, 즉 충분한 노력을 투자하지 않거나 단계를 건너뛰는 것을 피했습니다.
많은 기업은 대량의 데이터를 ML 엔진에 공급하는 것으로 정확한 예측을 생성하기에 충분하다고 가정합니다. 진실은 예를 들어 알고리즘 편향 또는 제한된 확장성과 같은 여러 가지 문제가 발생할 수 있다는 것입니다.
ML의 성공은 데이터에 크게 좌우됩니다. 그리고 슬픈 사실은 모든 데이터 세트에 결함이 있다는 것입니다. 이것이 데이터 준비가 ML에 중요한 이유입니다. 이는 원시 데이터에 내재된 부정확성과 편향을 배제하는 데 도움이 되므로 결과 ML 모델이 보다 안정적이고 정확한 예측을 생성합니다.
이 블로그 게시물에서는 ML용 데이터 준비의 중요성을 강조하고 데이터 수집, 정리 및 변환에 대한 접근 방식을 공유합니다. 따라서 ML을 처음 사용하고 이니셔티브가 성공하도록 하려면 계속 읽으십시오.
기계 학습을 위해 데이터를 준비하는 방법
ML을 성공적으로 채택하기 위한 첫 번째 단계는 비즈니스 문제를 명확하게 공식화하는 것입니다. 구축 중인 ML 모델이 비즈니스 요구 사항과 일치하도록 할 뿐만 아니라 관련이 없을 수 있는 데이터를 준비하는 데 드는 시간과 비용을 절약할 수 있습니다.
또한 명확한 문제 설명은 ML 모델을 설명 가능하게 만듭니다(사용자가 결정을 내리는 방법을 이해한다는 의미). ML이 사람들의 삶에 큰 영향을 미치는 의료 및 금융과 같은 분야에서 특히 중요합니다.
비즈니스 문제가 해결되면 이제 데이터 작업을 시작할 때입니다.
전반적으로 ML용 데이터를 준비하는 프로세스는 다음 단계로 나눌 수 있습니다.
- 데이터 수집
- 데이터 정리
- 데이터 변환
- 데이터 분할
각각에 대해 자세히 살펴보겠습니다.
데이터 수집
ML을 위한 데이터 준비는 데이터 수집에서 시작됩니다. 데이터 수집 단계에서 향후 ML 모델을 교육하고 튜닝하기 위해 데이터를 수집합니다. 이때 데이터의 유형, 볼륨 및 품질을 염두에 두십시오. 이러한 요인에 따라 최상의 데이터 준비 전략이 결정됩니다.
기계 학습은 구조화, 비구조화 및 반구조화의 세 가지 유형의 데이터를 사용합니다.
- 구조화된 데이터는 일반적으로 표 또는 스프레드시트 형식으로 특정 방식으로 구성됩니다. 구조화된 데이터의 예는 데이터베이스 또는 트랜잭션 시스템에서 수집된 정보 범위에 걸쳐 있습니다.
- 비정형 데이터에는 기존 데이터 모델을 따르지 않는 이미지, 비디오, 오디오 녹음 및 기타 정보가 포함됩니다.
- 반구조화된 데이터는 테이블 형식 데이터 모델의 형식을 따르지 않습니다. 그래도 해석하기 쉽게 만드는 태그나 메타데이터와 같은 일부 구조적 요소가 포함되어 있으므로 완전히 무질서한 것은 아닙니다. 예를 들면 XML 또는 JSON 형식의 데이터가 있습니다.
데이터 구조는 ML을 위해 데이터를 준비하는 최적의 접근 방식을 결정합니다. 예를 들어 구조화된 데이터는 쉽게 테이블로 구성하고 중복 제거, 누락된 값 채우기 또는 데이터 형식 표준화를 통해 정리할 수 있습니다. 반대로 비정형 데이터에서 관련 기능을 추출하려면 자연어 처리 또는 컴퓨터 비전과 같은 보다 복잡한 기술이 필요합니다.
ML을 위한 데이터 준비에 대한 최적의 접근 방식은 훈련 데이터의 양에도 영향을 받습니다. 대규모 데이터 세트에는 계산 제한으로 인해 모델을 교육하기 위해 데이터 하위 집합을 선택하는 것과 관련된 샘플링이 필요할 수 있습니다. 더 작은 데이터 과학자는 기존 데이터 포인트를 기반으로 더 많은 데이터를 생성하기 위해 추가 단계를 수행해야 할 수 있습니다(자세한 내용은 아래 참조).
수집된 데이터의 품질도 중요합니다. 부정확하거나 편향된 데이터를 사용하면 ML 출력에 영향을 미칠 수 있으며, 이는 특히 금융, 의료 및 형사 사법과 같은 영역에서 심각한 결과를 초래할 수 있습니다. 오류 및 편향에 대해 데이터를 수정할 수 있는 기술이 있습니다. 그러나 본질적으로 왜곡된 데이터 세트에서는 작동하지 않을 수 있습니다. 무엇이 "좋은" 데이터를 만드는지 알게 되면 데이터를 수집하는 방법과 찾을 위치를 결정해야 합니다. 이를 위한 몇 가지 전략이 있습니다.
- 내부 소스에서 데이터 수집: 엔터프라이즈 데이터 웨어하우스에 저장된 정보가 있는 경우 ML 알고리즘 교육에 사용할 수 있습니다. 이 데이터에는 판매 거래, 고객 상호 작용, 소셜 미디어 플랫폼의 데이터 및 기타 소스의 데이터가 포함될 수 있습니다.
- 외부 소스에서 데이터 수집: 정부 데이터 포털, 학술 데이터 리포지토리, Kaggle, UCI Machine Learning Repository 또는 Google Dataset Search와 같은 데이터 공유 커뮤니티와 같은 공개적으로 사용 가능한 데이터 소스로 전환할 수 있습니다.
- 웹 스크래핑: 이 기술은 자동화된 도구를 사용하여 웹사이트에서 데이터를 추출하는 것과 관련됩니다. 이 접근 방식은 제품 리뷰, 뉴스 기사 및 소셜 미디어와 같은 다른 수단을 통해 액세스할 수 없는 소스에서 데이터를 수집하는 데 유용할 수 있습니다.
- 설문 조사: 이 접근 방식은 특정 대상 고객으로부터 특정 데이터 포인트를 수집하는 데 사용할 수 있습니다. 특히 사용자 선호도 또는 행동에 대한 정보를 수집하는 데 유용합니다.
그러나 때때로 이러한 전략은 충분한 데이터를 생성하지 못합니다. 이 경우 이러한 기술을 사용하여 부족한 데이터 포인트를 보완할 수 있습니다.
- 데이터 증대: 이를 통해 기존 샘플을 다양한 방식(예: 회전, 변환 또는 크기 조정)으로 변환하여 더 많은 데이터를 생성할 수 있습니다.
- 활성 학습: 이를 통해 인간 전문가가 레이블을 지정할 가장 유익한 데이터 샘플을 선택할 수 있습니다.
- 전이 학습: 여기에는 관련 작업을 해결하기 위해 적용되는 사전 학습된 ML 알고리즘을 새로운 ML 모델 교육의 시작점으로 사용한 다음 새 데이터에서 새 모델을 미세 조정하는 작업이 포함됩니다.
- 공동 데이터 공유: 여기에는 공통 목표를 위해 데이터를 수집하고 공유하기 위해 다른 연구자 및 조직과 협력하는 것이 포함됩니다.
데이터 정리
ML용 데이터를 준비하기 위해 취해야 할 다음 단계는 데이터를 정리하는 것입니다. 데이터 정리에는 오류, 불일치 및 누락된 값을 찾고 수정하는 작업이 포함됩니다. 데이터 정리에는 여러 가지 접근 방식이 있습니다.
누락된 데이터 처리
누락된 값은 ML의 일반적인 문제입니다. 대치(생각: 예측 또는 추정 데이터로 결측값 채우기), 보간(주변 데이터 포인트에서 결측값 도출) 또는 삭제(단순히 데이터 세트에서 결측값이 있는 행이나 열 제거)로 처리할 수 있습니다.
이상값 처리
이상값은 나머지 데이터 세트와 크게 다른 데이터 포인트입니다. 이상값은 측정 오류, 데이터 입력 오류로 인해 또는 단순히 비정상적이거나 극단적인 관찰을 나타내기 때문에 발생할 수 있습니다. 예를 들어 직원 급여 데이터 세트에서 이상값은 다른 직원보다 훨씬 더 많거나 적은 급여를 받는 직원일 수 있습니다. 이상값은 영향을 줄이기 위해 제거, 변환, 윈소라이징(생각: 극단 값을 정규 분포 범위 내에 있는 가장 가까운 값으로 대체)하거나 별도의 데이터 클래스로 취급하여 처리할 수 있습니다.
중복 제거
ML용 데이터를 준비하는 과정의 또 다른 단계는 중복을 제거하는 것입니다. 중복은 ML 예측을 왜곡할 뿐만 아니라 특히 대규모 데이터 세트에서 저장 공간을 낭비하고 처리 시간을 늘립니다. 중복을 제거하기 위해 데이터 과학자는 다양한 중복 식별 기술(예: 정확한 일치, 퍼지 일치, 해싱 또는 레코드 연결)에 의존합니다. 일단 식별되면 삭제하거나 병합할 수 있습니다. 그러나 불균형 데이터 세트에서는 정규 분포를 달성하기 위해 실제로 중복을 환영할 수 있습니다.
관련 없는 데이터 처리
관련 없는 데이터는 문제 해결에 유용하지 않거나 적용할 수 없는 데이터를 말합니다. 관련 없는 데이터를 처리하면 잡음을 줄이고 예측 정확도를 높이는 데 도움이 될 수 있습니다. 관련 없는 데이터를 식별하기 위해 데이터 팀은 주성분 분석, 상관 분석과 같은 기술에 의존하거나 단순히 도메인 지식에 의존할 수 있습니다. 일단 식별되면 해당 데이터 포인트는 관련 데이터 세트에서 제거됩니다.
잘못된 데이터 처리
기계 학습을 위한 데이터 준비에는 부정확하고 잘못된 데이터 처리도 포함되어야 합니다. 이러한 데이터를 처리하는 일반적인 기술에는 데이터 변환(설정된 기준을 충족하도록 데이터 변경) 또는 잘못된 데이터 포인트를 모두 제거하는 것이 포함됩니다.
불균형 데이터 처리
불균형 데이터 세트는 한 클래스의 데이터 포인트 수가 다른 클래스의 데이터 포인트 수보다 현저히 적은 데이터 세트입니다. 이로 인해 소수 클래스를 무시하면서 다수 클래스를 우선시하는 편향된 모델이 생성될 수 있습니다. 이 문제를 해결하기 위해 데이터 팀은 리샘플링(소수 클래스를 오버샘플링하거나 데이터 분포의 균형을 맞추기 위해 다수 클래스를 언더샘플링), 합성 데이터 생성(소수 클래스에 대한 추가 데이터 포인트를 종합적으로 생성), 비용과 같은 기술에 의지할 수 있습니다. -민감한 학습(훈련 중 소수 클래스에 더 높은 가중치 할당) 및 앙상블 학습(다른 알고리즘을 사용하여 다른 데이터 하위 집합에서 훈련된 여러 모델 결합).
이러한 활동은 교육 데이터가 정확하고 완전하며 일관성이 있는지 확인하는 데 도움이 됩니다. 큰 성과지만 아직 신뢰할 수 있는 ML 모델을 생성하기에는 충분하지 않습니다. 따라서 ML용 데이터를 준비하는 여정의 다음 단계는 훈련 데이터 세트의 데이터 포인트가 특정 규칙과 표준을 준수하는지 확인하는 것입니다. 데이터 관리 프로세스의 해당 단계를 데이터 변환이라고 합니다.
데이터 변환
데이터 변환 단계에서 원시 데이터를 ML 알고리즘에 적합한 형식으로 변환합니다. 그러면 더 높은 알고리즘 성능과 정확도가 보장됩니다.
ML용 데이터 준비 전문가는 다음과 같은 일반적인 데이터 변환 기술을 지정합니다.
스케일링
데이터 세트에서 서로 다른 기능은 서로 다른 측정 단위를 사용할 수 있습니다. 예를 들어, 부동산 데이터 세트에는 각 건물의 방 수(1~10개 범위) 및 가격($50,000~$1,000,000 범위)에 대한 정보가 포함될 수 있습니다. 확장하지 않으면 두 기능의 중요성 사이에서 균형을 맞추기가 어렵습니다. 알고리즘은 더 큰 값(이 경우 가격)을 가진 기능에 너무 많은 중요성을 부여하고 겉보기에 더 작은 값을 가진 기능에는 충분하지 않을 수 있습니다. 스케일링은 일반적으로 0과 1 사이의 지정된 범위에 맞도록 모든 데이터 요소를 변환하여 이 문제를 해결하는 데 도움이 됩니다. 이제 서로 다른 변수를 동등하게 비교할 수 있습니다.
표준화
ML을 위한 데이터 준비에 사용되는 또 다른 기술은 정규화입니다. 스케일링과 비슷합니다. 그러나 스케일링은 데이터 세트의 범위를 변경하는 반면 정규화는 분포를 변경합니다.
부호화
범주형 데이터에는 값 수가 제한되어 있습니다(예: 색상, 자동차 모델 또는 동물 종). ML 알고리즘은 일반적으로 숫자 데이터로 작동하므로 입력으로 사용하려면 범주형 데이터를 인코딩해야 합니다. 따라서 인코딩은 범주형 데이터를 숫자 형식으로 변환하는 것을 의미합니다. 원-핫 인코딩, 서수 인코딩 및 레이블 인코딩을 포함하여 선택할 수 있는 여러 인코딩 기술이 있습니다.
이산화
이산화는 시간, 온도 또는 무게와 같은 연속 변수를 불연속 변수로 변환할 수 있는 ML용 데이터를 준비하는 접근 방식입니다. 사람의 키에 대한 정보가 포함된 데이터 세트를 고려하십시오. 각 사람의 키는 피트 또는 센티미터 단위의 연속 변수로 측정할 수 있습니다. 그러나 특정 ML 알고리즘의 경우 이 데이터를 "짧은", "중간" 및 "큰"과 같은 범주로 이산화해야 할 수 있습니다. 이것이 바로 이산화(disretization)가 하는 일입니다. 훈련 데이터 세트를 단순화하고 문제의 복잡성을 줄이는 데 도움이 됩니다. 이산화에 대한 일반적인 접근 방식은 클러스터링 기반 및 의사 결정 트리 기반 이산화에 걸쳐 있습니다.
차원 감소
차원 축소는 데이터 세트의 기능 또는 변수 수를 제한하고 문제 해결과 관련된 정보만 보존하는 것을 의미합니다. 예를 들어 고객의 구매 내역에 대한 정보가 포함된 데이터 세트를 고려하십시오. 여기에는 구매 날짜, 구매한 항목, 항목 가격 및 구매가 발생한 위치가 표시됩니다. 이 데이터 세트의 차원을 줄이기 위해 구매한 항목과 가격과 같은 가장 중요한 기능을 제외한 모든 기능을 생략합니다. 차원 감소는 다양한 기술로 수행할 수 있으며 그 중 일부는 주성분 분석, 선형 판별 분석 및 t-분포 확률적 이웃 임베딩입니다.
로그 변환
ML용 데이터를 준비하는 또 다른 방법인 로그 변환은 데이터 세트의 변수 값에 로그 함수를 적용하는 것을 말합니다. 훈련 데이터가 심하게 치우쳤거나 값의 범위가 큰 경우에 자주 사용됩니다. 대수 함수를 적용하면 데이터 분포를 보다 대칭적으로 만드는 데 도움이 될 수 있습니다.
데이터 변환에 대해 말하자면 기능 엔지니어링도 언급해야 합니다. 데이터 변환의 한 형태이지만 기능 엔지니어링은 ML용 데이터를 준비하는 과정에서 기술이나 단계 이상입니다. 데이터 세트에서 기능 선택, 변환 및 생성을 나타냅니다. 기능 엔지니어링에는 데이터에서 가장 관련성이 높은 정보를 캡처하는 기능을 만들기 위해 ML 모델 사용을 포함하여 통계, 수학 및 계산 기술의 조합이 포함됩니다.
일반적으로 문제 해결을 위한 최상의 접근 방식을 찾기 위해 다양한 기술과 기능 조합을 테스트하고 평가해야 하는 반복 프로세스입니다.
데이터 분할
ML용 데이터를 준비하는 프로세스의 다음 단계는 수집된 모든 데이터를 데이터 분할로 알려진 프로세스인 하위 집합으로 나누는 것입니다. 일반적으로 데이터는 교육, 검증 및 테스트 데이터 세트로 분류됩니다.
- 교육 데이터 세트는 ML 모델이 입력 변수와 대상 변수 사이의 패턴과 관계를 인식하도록 실제로 가르치는 데 사용됩니다. 이 데이터 세트는 일반적으로 가장 큽니다.
- 유효성 검사 데이터 세트는 교육 중에 모델의 성능을 평가하는 데 사용되는 데이터의 하위 집합입니다. 하이퍼파라미터를 조정하여 모델을 미세 조정하는 데 도움이 됩니다(예: 학습 속도, 정규화 강도 또는 숨겨진 레이어 수와 같이 훈련 전에 수동으로 설정되는 훈련 프로세스의 매개변수). 유효성 검사 데이터 세트는 교육 데이터에 대한 과적합을 방지하는 데도 도움이 됩니다.
- 테스트 데이터 세트는 학습된 모델의 성능을 평가하는 데 사용되는 데이터의 하위 집합입니다. 그 목표는 새로운 보이지 않는 데이터에 대한 모델의 정확성을 평가하는 것입니다. 테스트 데이터 세트는 모델이 훈련되고 훈련 및 검증 데이터 세트에서 미세 조정된 후 한 번만 사용됩니다.
데이터를 분할하여 ML 모델이 이전에 본 적이 없는 데이터에서 얼마나 잘 수행되는지 평가할 수 있습니다. 분할하지 않으면 모델이 새 데이터에서 제대로 수행되지 않을 가능성이 있습니다. 이는 모델이 패턴을 학습하고 이를 새 데이터로 일반화하는 대신 데이터 포인트를 암기했을 수 있기 때문에 발생할 수 있습니다.
데이터 분할에는 여러 가지 접근 방식이 있으며 최적의 선택은 해결 중인 문제와 데이터 세트의 속성에 따라 다릅니다. ML용 데이터 준비 전문가는 가장 효과적인 분할 전략을 결정하기 위해 데이터 팀의 일부 실험이 필요한 경우가 많다고 말합니다. 다음은 가장 일반적인 전략입니다.
- 무작위 샘플링: 이 전략을 사용하면 데이터가 무작위로 분할됩니다. 이 접근 방식은 모델링 중인 모집단을 대표하는 대규모 데이터 세트에 종종 적용됩니다. 또는 데이터 세트에 알려진 관계가 없을 때 사용되며 보다 전문적인 접근 방식이 필요할 수 있습니다.
- 층화 샘플링: 이 전략에서는 데이터를 클래스 레이블 또는 기타 특성에 따라 하위 집합으로 나눈 다음 이러한 하위 집합을 무작위로 샘플링합니다. 이 전략은 한 클래스의 값 수가 다른 클래스의 값 수를 훨씬 초과하는 불균형 데이터 세트에 적용됩니다. 이 경우 계층화된 샘플링은 교육 및 테스트 데이터 세트가 각 클래스의 값 분포가 유사하도록 하는 데 도움이 됩니다.
- 시간 기반 샘플링: 이 전략은 특정 시점까지 수집된 데이터는 훈련 데이터 세트를 만들고 설정 포인트 이후 수집된 데이터는 테스트 데이터 세트로 구성되는 데 사용됩니다. 이 접근 방식은 모델이 미래 데이터에 대해 정확한 예측을 할 수 있도록 보장하기 때문에 예를 들어 금융 또는 의료 데이터 세트에서 데이터가 장기간에 걸쳐 수집된 경우에 사용됩니다.
- 교차 유효성 검사: 이 전략을 사용하면 데이터가 여러 하위 집합 또는 접기로 나뉩니다. 일부 접기는 모델 훈련에 사용되고 나머지 접기는 성능 평가에 사용됩니다. 이 프로세스는 여러 번 반복되며 각 접기는 적어도 한 번은 테스트 데이터로 사용됩니다. 여러 가지 교차 검증 기술이 있습니다. 교차 유효성 검사는 일반적으로 단일 테스트 데이터 세트에 대한 평가보다 모델 성능에 대한 더 정확한 추정치를 제공합니다.
최종 참고 사항
ML용 데이터를 적절하게 준비하는 것은 정확하고 신뢰할 수 있는 기계 학습 솔루션을 개발하는 데 필수적입니다. ITRex에서는 데이터 준비의 어려움과 성공적인 ML 프로세스를 위한 고품질 데이터 세트 보유의 중요성을 이해합니다.
ML을 통해 데이터의 잠재력을 극대화하려면 ITRex 팀에 문의하십시오. 당사의 전문가가 데이터 수집, 정리 및 변환을 지원합니다.
이 기사는 원래 itrex 웹 사이트에 게시되었습니다.