본문 바로가기

빅데이터분석기사_실기/제1유형: 데이터 전처리

(10)
평활화 Smoothing 평활화데이터의 분포를 매끄럽게 함으로써 데이터에서 중요하지 않은 것(잡음 등)을 제거하고 패턴을 알아내는 방법목적: 값의 변화를 매끄럽게 하여 데이터의 추세(경향)을 알기 쉽게 하는 것이동평균 (MA, Moving Average)이동평균은 이전 n개 데이터의 비가중/가중 평균단순이동평균, 누적이동평균, 가중이동평균 등이 있음평활화 실습실습 데이터 준비: 1821년부터 1934년까지 캐나다 시라소니의 수에 대한 시계열 데이터 lynx.csvimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltfile_path = 'https://raw.githubusercontent.com/YoungjinBD/dataset/main/lynx.csv'df ..
이상치 Outlier 처리 이상값데이터의 범위에서 크게 벗어난 (정상범위 밖에 있는) 값사분위범위 / 정규분포를 이용해서 식별, 식별된 이상치는 제거 여부 판단이상치 처리 실습실습용 데이터 준비import numpy as npimport pandas as pdimport matplotlib.pyplot as plt#평균 50, 표준편차 10의 정규분포를 따르는 200개의 랜덤 숫자 데이터 생성data = 10 * np.random.randn(200) + 50df = pd.DataFrame({"값" : data})임의의 이상치 (매우 작거나 큰 데이터) 삽입df.loc[200] = 2df.loc[201] = 100df.loc[202] = 10df.loc[203] = 110히스토그램을 이용한 분포 시각화plt.hist(df["값"],..
결측치 처리 결측치 처리 실습실습용 타이타닉 데이터 준비from google.colab import drivedrive.mount('/content/drive')import pandas as pdfile_path = '/content/drive/MyDrive/data/titanic_train.csv'df = pd.read_csv(file_path)결측치 확인df.info()Non-Null Count 컬럼을 통해 Age, Cabin, Embarked 컬럼에 결측치가 존재함을 알 수 있당.df.isnull().sum()각 컬럼별 결측치 개수 확인Age 컬럼에 177개, Cabin 컬럼에 687개, Embarked 컬럼에 2개가 존재함결측치 제거완전 분석법: 결측값이 있는 행을 삭제print(df.shape)df_1 = ..
데이터 변환: 차원축소 PCA, 주성분 분석 주성분 분석 (PCA, Principal Component Analysis)여러 변수들의 변량을 "주성분(Principal Component)"이라고 불리는, 서로 상관성이 높은 여러 변수들의 선형 조합으로 만든 새로운 변수들로 요약, 축소하는 기법첫번째 주성분으로 전체 변동을 가장 많이 설명두번째 주성분으로는 첫번째 주성분이 설명하지 못하는 나머지 변동을 정보의 손실없이 가장많이 설명할 수 있도록PCA 실습실습 데이터 준비import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfile_path = 'https://raw.githubusercontent.com/YoungjinBD/dataset/main/iris.csv'iris = pd.r..
데이터 변환: 범주화(Categorization), 이산형화(Discretization) 범주화(Categorization) / 이산형화(Discretization)연속형 변수를 범주형 변수로 변환하는 작업"몇 개의 범주로 나눌 것인지", "어떤 기준으로 나눌지" 를 정하는 것이 중요주로 조건문, cut(), qcut() 등을 사용범주화 / 이산형화 실습import pandas as pddata = [["철수", 52], ["영희", 92], ["미영", 84], ["시완", 71], ["미경", 65], ["영환", 81], ["숙경", 66], ["부영", 77], ["민섭", 73], ["보연", 74]]df = pd.DataFrame(data, columns = ["이름", "수학점수"])실습 데이터 만들기import matplotlib.pyplot as pltplt.hist(df[..
데이터 변환: 정규분포 변환 왜도(skewness)왜도는 분포의 대칭 척도왜도가 0이 아닌 경우 분포가 한 쪽으로 치우쳐 있음 [왜도에 따른 데이터 분포 형태]양수(+) 왜도: 왼쪽으로 치우침 ( 평균 > 중앙값 > 최빈값)왜도가  0: 좌우 대칭 (평균 = 중앙값 = 최빈값)음수(-) 왜도: 오른쪽으로 치우침 ( 평균 정규분포 변환 실습import pandas as pdfile_path = 'https://raw.githubusercontent.com/YoungjinBD/dataset/main/USJudgeRatings.csv'df = pd.read_csv(file_path)왜도 계산: scipy 패키지의 skew() 함수 사용import scipy.stats as ssprint(ss.skew(df["CONT"]))print(ss..
데이터 변환: Min-Max 정규화 데이터의 범위가 같아지도록 변수별로 값을 비례적으로 조정하는 과정은 데이터 스케일링(Scaling)데이터 스케일링의 대표적인 기법으로 표준정규화(표준화), Min-Max 정규화가 있다.변수들의 측정단위나 값 범위가 다를 때 적용Min-Max 정규화Min-Max 정규화는 연속형 변수의 값을 0과 1사이의 값으로 변환Scale이 다른 변수를 Min-Max 변환하면 상호간에 비교가 가능사이킷런 패키지의 MinMaxScaler(), minmax_scale() 함수를 이용하는 방법넘파이 패키지의 통계함수를 이용하여 (x - np.min(x)) / (np.max(x) - np.min(x)) 식을 직접 입력하는 방법방법1: 사이킷런 패키지의 MinMaxScaler() 함수 사용from sklearn.preproces..
데이터 변환: Z-표준화, Z-Score 데이터의 범위가 같아지도록 변수별로 값을 비례적으로 조정하는 과정은 데이터 스케일링(Scaling)데이터 스케일링의 대표적인 기법으로 표준정규화(표준화), Min-Max 정규화가 있다.변수들의 측정단위나 값 범위가 다를 때 적용실습: 정규분포를 따르는 데이터를 생성하고 살펴보기import numpy as npimport pandas as pdmeat_consumption_korean = 5*np.random.randn(1000) + 53.9#연간 한국인 육류쇼비량 평균 53.9, 표준편차 5의 정규분포를 따르는 1000개의 데이터 생성meat_consumption_japanese = 4*np.random.randn(1000) + 32.7#연간 일본인 육류소비량 평균 32.7, 표준편차 4의 정규분포를 따..