Search
👶

인스턴스 축소

인스턴스 축소

숫자 감소: 속성의 수가 아닌 데이터 포인트의 수를 줄여서 데이터를 축소하는 방법

인스턴스 축소 방법

비모수 모델 기반 숫자 감소 방법: 히스토그램, 데이터 집계, 샘플링, 클러스터
모수 모델 기반 숫자 감소 방법: 전체 데이터 대신 데이터 모델을 저장
예: 로그 선형 모델 또는 회귀모델

버킷을 활용한 인스턴스 축소 방법

데이터를 구분하는 버킷을 결정하고, 버킷에 따라 값을 할당하는 방법
히스토그램

버킷 생성 방법

동일 빈도 수 :각 버킷은 동일한 수의 데이터 샘플을 보유함
각 버킷의 주파수가 거의 일정
동일 너비 : 각 버킷의 너비를 균일하게 설정
상점에서 판매되는 품목의 가격 목록(단위:$)

버킷을 활용한 인스턴스 축소 방법의 효과

연속형 변수도 범주형 변수로 구간을 분할해 이산화시킴
특정 분기점 이후로 데이터가 나뉘는 경우 유용함
회귀모델의 경우 예측력이 강화됨
예시: 고객 데이터의 Salary와 Age에 개념 계층을 생성

pd.cut()

수치 데이터를 범주형으로 변환
names = ['weak', 'normal', 'strong', 'strongest'] concrete['labels'] = pd.cut(concrete.strength, 4, labels=names) concrete.head()
Python
복사

pd.qcut()

수치 데이터를 표본 변위치를 기준으로 버킷을 생성
pd.qcut(concrete.strength, 4)
Python
복사
concrete.groupby(pd.qcut(concrete.strength, 4)).size()
Python
복사

개념 계층 생성

연속 속성을 범주 속성으로 변환 (데이터 추상화)
원본 데이터를 단순화하고 마이닝 효율성을 높임
주어진 숫자 속성에 대한 개념 계층에 의해 정의
예시: 수치 데이터(가격)
예시: 범주형 데이터(지역)

샘플링

데이터를 일부 추출하여 최적의 입력 데이터로 만들어 줌
머신러닝을 진행할 시에 입력 데이터가 많아지면 처리속도는 느려지기 때문에 대표되는 데이터를 샘플링 한 뒤, 머신러닝을 수행하면 학습 속도가 빨라짐
데이터 추출 방법
단순 랜덤 샘플링
단순 확률 추출, 무작위 추출
층화 샘플링
모집단을 동질적인 다수의 층으로 나누고, 층을 기준으로 단순 무작위 표본추출을 하는 방법
데이터 재사용 여부
복원 추출법
추출한 데이터를 다시 모집단에 복원하여 추출하는 방법
비복원 추출법
추출한 데이터를 모집단에서 제외하는 방법

단순 랜덤 샘플링 vs 층화 샘플링

단순 랜덤 샘플링을 진행 했을 경우, 특정 집단의 데이터가 쏠려서 추출되는 경우가 발생할 수 있음
층화 샘플링은 모집단에서 집단 간의 비율을 고려하여 샘플링을 진행하기 때문에 이러한 문제 해결

복원 추출 vs 비복원 추출

복원 추출에서는 한 번 사용된 데이터가 재사용 될 가능성이 있음
비복원 추출에서는 한 번 사용된 데이터는 다시 사용되지 않음