일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 공공빅데이터청년인턴
- NLP
- machinelearning
- 분석변수처리
- textmining
- ADSP
- 2023공공빅데이터청년인재양성후기
- decisiontree
- DL
- datascience
- 빅데이터
- 2023공빅데
- 오버샘플링
- 클러스터링
- 공빅
- 텍스트마이닝
- ADsP3과목
- 2023공공빅데이터청년인재양성
- 공빅데
- k-means
- Keras
- Kaggle
- ML
- 공공빅데이터청년인재양성
- data
- 데이터분석
- DeepLearning
- SQL
- 데이터전처리
- 머신러닝
- Today
- Total
愛林
Python으로 배우는 데이터 전처리 이해(II) - 분석 변수 처리란? , 변수 선택 - 필터(Filter)기법 본문
Python으로 배우는 데이터 전처리 이해(II) - 분석 변수 처리란? , 변수 선택 - 필터(Filter)기법
愛林 2022. 7. 9. 01:10분석 변수 처리란 ?
분석 변수 처리란 확보한 데이터를 사용하여 정보를 추가하는 일련의 과정이며,
새로운 데이터(관측치나 변수) 를 추가하지 않고도 기존의 데이터를 보다 유용하게 만드는 방법
분석 변수 처리에는 데이터 축소, 파생변수 생성, 데이터 변환, 불균형 데이터 처리가 있다.
1 ) 데이터 축소 (Data Reduction)
데이터 축소는 변수 선택과 차원 축소가 있다.
변수 선택은 해결하고자 하는 문제에 대해서 유의미한 변수를 선택하는 과정이고,
차원 축소는 샘플링, 차원 축소, 특징(feature) 선택 및 추출을 통해 데이터 크기를 줄이는 작업이다.
2 ) 파생변수 (Derived Variance) 생성
분속의 효율성과 효과성을 위해 기존 변수에특정 조건이나 함수를 활용해서 만들거나,
기존 변수들을 조합해서 새롭게 변수를 만드는 과정이다.
3 ) 데이터 변환 = 변수 변환
데이터를 한 형식이나 구조에서 다른 형식이나 구조로 변환한다.
데이터 스케일링을 해서 데이터 표준화, 정규화 집계 등의 기법을 통해 데이터를 변환한다.
예로서는 비정형 데이터의 정형데이터로 변환 이 있다.
4) 불균형 데이터 처리 (Data Balancing)
특정 클래스의 데이터가 타 클래스의 데이터 수와 너무 차이가 날 때, 샘플링을 통해서
이 비율을 맞추는 것이다.
분석 변수 처리를 하기 위해서는, 변수의 유형을 잘 알아두고 가야한다.
자세한 변수 유형은
https://wndofla123.tistory.com/9
통계 기초 이론 (1)
어제에 이어 계속되는 통계 기초 이론 .. 이 강사님은 되게 강의를 체계적으로 ? 교수님같이 잘 해주셨다. 근데 진짜 교수님인 것 같았음. 1. 통계학 어디서든 데이터가 수집되고, 그 정보를 유용
wndofla123.tistory.com
통계 기초 이론에 내가 잘 정리해두었으니 ...
참고하면 된다.
바로 데이터 축소 기법의 변수 선택을 알아보러 가자.

변수 선택 (Variable Selection)
변수 선택이란, 해결하고자 하는 문제에 대해서 유의미한 변수를 선택하는 과정이다.
통계학적으로, 종속변수에 유의미한 독립변수 (보통은 X변수) 를 선택하는 과정이다.
변수 선택의 궁극적인 목적은
예측 모델의 오차를 최소할 수 있는 최소한의 변수 집합을 선택하는 것이다.
변수 선택도 기법이 있는데 , 필터 기법, 래퍼 기법, 임베디드 기법이 있다.
1) 필터 기법 (Filter Method)
특징 모델링 기법에 의존하지 않고 데이터의 통계적 특성을 이용해서 관련성이 높은 변수를 선택하는 방법이다.
(래퍼 기법의 사전 처리)
종속 변수와의 상관 관계로 관련성을 측정해서 계산 속도가 빠른 것이 특징이다.
카이제곱 검정(관찰된 빈도가 기대 빈도와 통계적으로 다른 지를 판단),
정보이득,
큰 상관계수(상관계수가 높으면 상관관계가 높다),
0에 가까운 분산(0에 가까운 분산을 갖는 변수 제거) 등이 있다.
2) 래퍼 기법 (Wrapper Method)
변수의 일부만을 사용해 모델링을 수행하고 결과를 확인하는 작업을 반복하여 변수 집합을 선택하는 방법이다.
모델링 과정을 통해 관련성을 측정하기 때문에 계산 속도가 느리다.
과적합 발생 가능성이 있다.
전진 선택(반복할 때마다 변수를 추가하여 성능의 개선이 없을 때까지 변수 추가),
후진 제거(모든 변수를 가지고 시작해서 성능의 개선이 없을 때까지 변수 삭제),
단계별 선택법(전진 선택 + 후진 삭제)
이 있다.
3) 임베디드 기법 (Embedded Method)
모델 자체의 파라미터값에 따라 변수 선택이 가능한 기법이다.
필터 기법과 래퍼 기법의 장점을 결합한 기법이다.
성능이 가장 좋은 변수집합을 선택하기 때문에 과적합을 최소화한다는 특징이 있다.
모델 자체의 파라미터값에 따라 변수선택이 가능한 기법, 성능이 가장 좋은 변수 집합을 선택,
과적합 최소화
라쏘 회귀(LASSO Regression) 릿지 회귀(Ridge Regression) 엘라스틱 넷 SelectFromModel 이 있다.
분석 변수 처리 실습
실습 전, 필요한 라이브러리들을 import 한다.
이번에는 붓꽃 데이터를 사용해서 실습할 것이다.
붓꽃 데이터는 통계학자 피셔의 붓꽃 분류 연구에 기반한 데이터다.
머신러닝 왕초보용 데이터라고..
load_iris() 명령으로 로드한다.
데이터를 생성한다. target_names 는 species 로 이름을 바꾸어 주었다.
필터명을 정의해주었다.
준비끝.
필터 기법
먼저, 필터 기법을 이용한 변수 선택을 해보자.
Scikit-learn 의 VarianceThreshold 를 사용하여 분산이 기준치보다 낮은 특징 데이터는 사용하지 않겠다.
from sklearn.feature_selection import VarianceThreshold
cols 를 피팅해주고..
일단 분산을 확인해보았다.
임계치 (Threshold) 를 설정해준다.
분산이 임계치보다 낮은 feature 을 확인했다.
True 면 높은 것이고, False 는 낮은 것이다.
특성을 필터해서 데이터프레임에 저장한다.
결과 데이터 프레임 생성해주자.
결과가 잘 나왔다.
근데 이해가 잘 안 간다 ㅠㅠ
큰 상관 계수 (Correlation) 을 이용한 필터 기법
데이터셋에서 sepal length (cm) 속성과 상관계수가 0.6 보다 큰 속성들을 필터링 할 것이다.
상관계수가 클수록 상관관계가 크다.
+ 상관계수의 뜻
상관계수(Correlation) 란, 두 변수 x,y 사이의 상관관계의 정도를 나타내는 수치이다.
산점도에서 점들이 얼마나 선에 가깝게 위치하는가의 정도를 나타내는 데 쓰인다.
보통은 피어슨의 상관계수라고 불린다.
보통 -1, 1 사이의 수를 가지며, 상관계수의 절대값이 클수록 산점도가 직선에 가까워진다. (연관성이 크다는 뜻)
상관계수의 값이 1이나 -1에 가까울수록 , 두 변수 사이의연관성이 크다.
실습시작
먼저, iris 데이터프레임을 확인해주자.
이제 상관계수를 생성해보자.
corr() 은 상관계수를 확인시켜주는 메서드이다.
이후, 히트맵을 사용하여 상관관계를 가시화해주었다.
오호라 ..
petal length (cm) 와 petal width (cm) 가 상관계수가 0.6보다 큰 것을 알 수 있다.
연관성이 크다는 말이 되겠다.
상관계수가 0.6보다 큰 것을 보여주는 selected_cols 함수를 생성했다.
필터링한 값을 확인했다.
sepal length 와의 상관계수가 0.6보다 큰 속성들 petal length, petal width를 출력한 것이다.
이 필터링한 속성을 df_cor_sel 에 저장하겠다.
필터링이 잘 되었다.
Review
분석 변수 처리의 데이터 축소를 알아보았다.
데이터 축소에는 변수선택과 차원 축소가 있는데, 여기서 우리는 변수 선택 방법을 실습해보았다.
변수선택이란, 해결하고자 하는 문제에 대해 유의미한 변수를 선택하는 과정이다.
예측 모델을 설계할 때 오차를 최소화할 수 있는 최소한의 변수 집합을 선택하는 것이다.
변수 선택 기법에도 필터 기법, 래퍼 기법, 임베디드 기법이 있는데,
여기서 우리는 필터 기법을 선택해서 실습해보았다.
필터 기법은 관련성이 높은 변수들만 필터링 해주는 기법인데,
우리는 분산을 이용한 필터링 기법과,
큰 상관계수를 이용한 필터링 기법을 이용해서 실습했다.
※ 저의 모든 데이터 분석 자료는 모두 공공 빅데이터 청년 인턴 교재들을 참고합니다.
'Data Science > DATA' 카테고리의 다른 글
Python으로 배우는 데이터 전처리 이해(II) - 분석변수 처리 - 변수 변환(Variable Transformation) (1) - 로그(Log)변환 (2) | 2022.07.10 |
---|---|
Python으로 배우는 데이터 전처리 이해(II) - 분석변수 처리 - 파생변수(Derived variance) 생성 (2) | 2022.07.09 |
Python으로 배우는 데이터 전처리 이해(I) - 이상값(Outlier)처리 (2) | 2022.07.06 |
Python으로 배우는 데이터 전처리 이해(I) - 결측값 처리 (4) | 2022.07.06 |
Python으로 배우는 데이터 전처리 이해(I) - 데이터 실수화 (2) | 2022.07.05 |