정규화 적용 지침
최소-최대 확장: 최소-최대 스케일링은 신경망 및 지원 벡터 머신과 같은 입력 기능이 특정 범위 내에 있어야 하는 알고리즘에 적합합니다. 확장에 영향을 미칠 수 있으므로 이상치가 적절하게 처리되었는지 확인하십시오.
Z점수 정규화 : 이는 k-평균 클러스터링, 선형 회귀 및 로지스틱 회귀와 같은 알고리즘에 적합합니다. 그 결과, 표준편차가 1인 약 0의 분산이 발생하므로, 정규 분산 데이터를 가정하는 알고리즘에 이상적입니다.
희소 데이터: 희소 데이터 세트(대부분의 값이 0인 경우)의 경우, 정규화를 위해 MaxAbsScaler 또는 RobustScaler와 같은 기법을 사용하는 것을 고려하십시오.
범주형 데이터: 범주형 기능의 경우, 의미 있는 확장을 보장하기 위해 정규화 전에 원-핫 인코딩과 같은 기법을 고려하십시오.
정규화 기법의 선택은 데이터의 특정 특성과 사용 계획인 머신러닝 알고리즘의 요구사항에 따라 달라진다는 점에 유의해야 합니다. 모델 성능에 미치는 영향을 실험하고 이해하는 것은 정규화를 효과적으로 적용하기 위한 핵심 요소입니다.
3. 기능 확장
기능 확장은 데이터 세트의 독립 변수 또는 기능의 범위를 표준화하는 데 사용되는 데이터 전처리 기법입니다. 기능 확장의 목표는 모델 트레이닝 또는 분석 중에 한 기능이 다른 기능보다 우세하지 않도록 모든 기능을 유사한 스케일 또는 범위로 만드는 것입니다. 기능 확장은 최적화 알고리즘의 컨버전스 속도를 개선하고 특정 기능이 모델에 과도한 영향을 미치지 않도록 방지할 수 있습니다.
데이터 전처리에서 기능 확장의 역할
스케일링 기능은 ML 알고리즘이 모든 기능을 동일하게 처리하도록 하여, 더 큰 스케일의 기능에 대한 편향을 방지합니다. 또한 기능 확장 시 많은 최적화 알고리즘(예: 경사 하강)이 더 빠르게 수렴되어 모델 트레이닝이 더 빨라지기 때문에 수렴을 향상시킵니다. 또한, 기능 크기의 큰 차이로 인해 발생할 수 있는 수치적 불안정성 문제를 방지할 수 있습니다. 마지막으로, 확장을 통해 모델의 예측에 미치는 기능의 영향을 보다 쉽게 해석할 수 있습니다.
기능 확장 방법
위에서 설명한 최소-최대 스케일링 및 Z-스코어 정규화 외에도 다음과 같은 기능도 있습니다.
MaxAbsScaler: 이렇게 하면 각 피처가 최대 절대값으로 스케일링되므로, 결과값의 범위는 -1~1입니다. 텍스트 분류 또는 추천 시스템과 같이 제로 엔트리를 보존하는 것이 중요한 희소 데이터에 적합합니다.
견고한 스케일러: 이는 중앙값 및 사분위수 범위(IQR)와 같이 이상치에 견고한 통계를 사용하여 기능을 확장합니다. 이상치나 왜곡된 분산이 포함된 데이터 세트에 적합합니다.
기능 확장 적용 지침
기능 확장을 적용하려면:
- 데이터가 정규 분포를 따르거나 선형 회귀, 로지스틱 회귀 또는 k-평균 클러스터링과 같은 알고리즘을 사용할 때 표준화(Z-점수 정규화)를 적용합니다.
- 신경망 또는 지원 벡터 머신과 같은 특정 범위 내에 데이터가 있어야 하는 경우 정규화(최소-최대 스케일링)를 적용합니다.
- 텍스트 데이터 또는 고차원 희소 기능과 같은 희소 데이터를 처리할 때 MaxAbsScaler를 사용하십시오.
- 이상치 또는 정상적으로 분산되지 않는 기능이 포함된 데이터 세트를 처리할 때는 RobustScaler를 사용하십시오.
범주형 기능은 특히 명목상(주문 없는 범주)인 경우, 기능 확장을 적용하기 전에 인코딩(예: 원-핫 인코딩)이 필요할 수 있습니다.
4. 범주형 데이터 처리
범주형 변수는 그룹 또는 범주를 나타내며, 종종 숫자가 아닌 성격을 지니며, 모델 트레이닝 중에 다음과 같은 문제를 야기합니다.
- 숫자가 아닌 표현: 범주형 변수는 일반적으로 문자열 또는 레이블을 사용하여 표시되며, 대부분의 머신러닝 알고리즘은 이를 직접 처리할 수 없습니다. 알고리즘은 트레이닝 및 예측을 위해 숫자 입력이 필요합니다.
- 서수 대 공칭 변수: 범주형 변수는 서수(의미 있는 순서로) 또는 공칭(특정 순서 없이)일 수 있습니다. 서수 변수를 공칭 또는 그 반대로 처리하면 잘못된 모델 해석 또는 편향된 예측으로 이어질 수 있습니다.
- 차원의 저주: 범주형 데이터 처리를 위한 일반적인 기술인 원-핫 인코딩은 데이터 세트의 차원을 증가시킬 수 있으며, 특히 다수의 고유한 카테고리에서 그러합니다. 이는 모델 성능에 영향을 미치고 컴퓨팅 복잡성을 증가시킬 수 있습니다.
범주형 변수 인코딩 기법
범주형 변수 인코딩 기법은 다음과 같습니다.
라벨 인코딩: 레이블 인코딩은 범주형 변수의 각 카테고리에 고유한 숫자 레이블을 할당합니다. 카테고리 간에 의미 있는 순서가 있는 서수 변수에 적합합니다.
Python의 scikit-learn을 사용한 예는 다음과 같습니다.
sklearn.preprocessing에서 LabelEncoder 가져오기
le = LabelEncoder()
인코딩된_라벨 = le.fit_transform(['cat', 'dog', 'rabbit', 'dog'])
원핫 인코딩: 원-핫 인코딩은 범주형 변수에서 각 카테고리에 대한 바이너리 열을 생성하며, 각 열은 해당 카테고리의 유무를 나타냅니다. 카테고리 간에 특정 순서가 없는 공칭 변수에 적합합니다.
다음은 판다를 사용하는 예입니다.
판다를 pd로 가져오기
df = pd.DataFrame({'category': ['A', 'B', 'C', 'A']})
one_hot_encoded = pd.get_dummies(df['category'], prefix='category')
더미 인코딩: 더미 인코딩은 1-핫 인코딩과 유사하지만 선형 모델에서 멀티콜로리니티 문제를 방지하기 위해 바이너리 열 중 하나를 떨어뜨립니다. 한 카테고리가 참조 카테고리로 사용되는 회귀 모델에서 일반적으로 사용됩니다.
다음은 판다를 사용하는 예입니다.
dummy_encoded = pd.get_dummies(df['category'], prefix='category', drop_first=True)
범주형 데이터 취급 지침
범주형 데이터를 올바르게 처리하려면 다음을 수행해야 합니다.
변수 유형 이해: 적절한 인코딩 기법을 선택하기 위해 범주형 변수가 서수형인지 공칭인지 여부를 결정합니다.
서수적 오해 방지: 공칭 변수에 라벨 인코딩을 사용할 때는 데이터에 의도하지 않은 관례가 발생할 수 있으므로 주의하십시오.
높은 카디널리티를 처리하세요. 고유 카테고리가 많은 범주형 변수의 경우, 주파수 인코딩, 타겟 인코딩 또는 PCA와 같은 차원 감소 기법과 같은 기법을 고려하십시오.
이는 이미 언급된 결측치의 처리 및 수치 데이터의 정규화와는 별도로 이루어집니다.
5. 불균형한 데이터 처리
불균형한 데이터를 처리하는 것은 머신러닝, 특히 한 클래스(소수 클래스)의 인스턴스 수가 다른 클래스(대수 클래스)보다 훨씬 적은 분류 작업에서 흔히 발생하는 과제입니다. 불균형한 데이터는 모델 트레이닝 및 평가에 상당한 영향을 미칠 수 있으며, 이로 인해 편향된 모델이 과반수 클래스에 유리하고 소수 클래스에서 성능이 저하될 수 있습니다.
불균형한 데이터와 이를 처리하는 기법에 대한 몇 가지 핵심 사항은 다음과 같습니다.
불균형 데이터가 모델 성능에 미치는 영향
불균형한 데이터에 대해 훈련된 모델은 소수 집단을 소홀히 하면서 대다수 집단의 정확성을 우선시하는 경향이 있습니다. 이는 소수 집단 예측에서 성능 저하로 이어질 수 있습니다. 또한, 정확성과 같은 지표는 불균형한 데이터 세트에서 오해의 소지가 있을 수 있습니다. 높은 정확도는 소수 집단을 무시하면서 과반수 집단을 정확하게 예측함으로써 발생할 수 있습니다. 정밀도, 회상, F1-score 및 ROC 곡선하 면적(AUC-ROC)과 같은 평가 지표는 정확도 단독에 비해 불균형한 데이터 세트에 더 유용합니다.
불균형한 데이터 처리 기법
불균형한 데이터를 처리하는 가장 일반적인 기법은 오버샘플링과 언더샘플링입니다. 오버샘플링은 소수 집단의 인스턴스 수를 증가시켜 대수 집단과 균형을 이루도록 합니다. 저샘플링은 소수 집단과 균형을 이루기 위해 대수 집단의 인스턴스 수를 줄이는 것을 포함합니다. 오버샘플링과 언더샘플링을 결합하여 하이브리드 접근 방식을 취할 수도 있습니다.
또한, 모델 트레이닝 중에 클래스 가중치를 조정하여 소수 클래스의 오류를 대다수 클래스의 오류보다 더 많이 페널리징할 수 있는 클래스 가중치가 있습니다. 이는 로지스틱 회귀 또는 지원 벡터 머신과 같이 클래스 가중치를 지원하는 알고리즘에만 유용합니다.
불균형 데이터 취급 지침
불균형한 데이터를 처리하려면 다음을 수행해야 합니다.
데이터 배포 이해: 데이터 세트의 클래스 분포를 분석하여 불균형 심각도를 결정합니다.
적절한 기법을 선택하세요. 데이터 세트 크기, 불균형 비율 및 컴퓨팅 리소스에 따라 오버샘플링, 과소샘플링 또는 하이브리드 기술을 선택합니다.
지표 평가: 정밀성, 회상, F1-score 또는 AUC-ROC 곡선과 같은 적절한 평가 지표를 사용하여 두 클래스 모두에서 모델 성능을 평가합니다.
교차 검증: 데이터 유출을 방지하고 신뢰할 수 있는 모델 성능 추정치를 얻기 위해 교차 검증 접기 내에 기술을 적용하세요.
결론
데이터 전처리는 ML 모델이 고품질의 적절한 형식의 데이터에 대한 교육을 받을 수 있도록 지원하며, 이는 모델의 성능, 정확성 및 일반화 능력에 직접적인 영향을 미칩니다. 데이터 전처리는 결측치, 이상치, 범주형 변수 및 클래스 불균형과 같은 문제를 해결함으로써 모델이 더 많은 정보에 입각하고 정확한 예측을 할 수 있도록 지원하여 실제 애플리케이션에서 더 나은 의사 결정을 내릴 수 있도록 합니다.
ML 실무자는 적절한 데이터 전처리를 통해 데이터의 잠재력을 최대한 활용하고, 여러 도메인에 걸쳐 다양한 애플리케이션에 대해 보다 정확하고 신뢰할 수 있는 예측 모델을 구축할 수 있습니다.
그러나 실제로 이를 실현하기 위해서는 먼저 AI 및 머신러닝을 가속화하고 엔터프라이즈 AI 이니셔티브에 앞서가는 데 도움이 되는 퓨어스토리지와 같은 유연한 데이터 스토리지 솔루션이 필요합니다. AI