취뽀 기록

#열심히 살자 #취업 #공부

Python/[개념 및 문법] 24

[python] 정규화(최대절대값 정규화, 최소값-최대값 정규화)

최대절대값 정규화 = 관측치 / 절대값(최대값) => -1 ~ 1 사이의 값을 가질 수 있음 df['hp_nmz1'] = df['horsepower']/abs(df['horsepower'].max()) # df['hp_nmz1'] = df['horsepower']/abs(df['horsepower']).max() df['hp_nmz1'].describe() 최소값 - 최대값 정규화 = (관측치 - 최소값) / (최대값 - 최소값) 관측치 = 최소값이라면? => 0 관측치 = 최대값이라면? => 1 => 0 ~ 1 사이의 값을 가질 수 있음 df['hp_nmz2'] = (df['horsepower'] - df['horsepower'].min())/ \ (df['horsepower'].max() - df['..

[사이킷런] 더미변수 만들기, 라벨 인코딩, 원핫 인코딩

사이킷런으로 가변수를 만들어보자. # 라벨 인코딩 [Label Encoding] 라벨 인코딩은 n개의 범주형 데이터를 0부터 n-1까지의 연속적 수치 데이터로 표현 소 → 0 / 중 → 1 / 대 → 2 주의할 점은 인코딩의 결과가 수치적인 차이를 의미하진 않는다는 것 즉, 대(2)가 중(1)의 두배라는 것은 아님! # 사이킷런으로 더미변수 만들기 from sklearn import preprocessing # 전처리 엔코더 객체 label_encoder = preprocessing.LabelEncoder() onehot_encoder = preprocessing.OneHotEncoder() # 문자열 범주를 숫자 범주로 변환 = LabelEncoder labels = label_encoder.fit_t..

[Pandas] 데이터 구간별 범주화 pd.cut, pd.get_dummies

데이터 구간별 범주화 pd.cut 함수 데이터 값들을 특정 구간에 따라서 범주화할 때 사용 범주를 나누고 라벨을 붙여서 범주형 데이터로 변환 가능 연속 데이터를 구간별로 범주화 [cut 함수] 균등한 길이의 그룹 데이터의 분산에 따라 각각의 그룹마다 데이터 수가 다르게 나뉜다. [qcut 함수] 같은 크기의 그룹 표본 변위치를 기반으로 데이터를 나누어, 적당히 같은 크기의 그룹으로 나눌 수 있다. horsepower를 3 구간으로 저출력 / 보통출력 / 고출력 으로 나눠보자. pd.cut을 이용하는데 (데이터배열, 구간, 레이블이름, 경계 포함) 중 데이터배열과 구간은 필수 입력 여기서 include_lowest는 구간의 시작값을 포함하는지에 대한 여부 # 범주형 변환 bins_name = ["저출력",..

[Pandas] 데이터 전처리(널값 확인 및 대체, 중복 데이터, 표준화)

일단 라이브러리를 불러오자 # 라이브러리 불러오기 import pandas as pd import seaborn as sns # 널값 확인 # = 비어 있는 데이터(값) = 누락 데이터 df = sns.load_dataset('titanic') df.info() # Non-Null Count # 전체 행 개수가 891개 이므로 Non-Null Count도 891개가 되어야 널값이 없는 것 # 891개보다 적으면 널값이 있으니 확인! # 빈도표 # 빈도표 = 해당 열 고유값 & NaN 미포함 df['deck'].value_counts() # 빈도표 = 해당 열 고유값 & NaN 포함 df['deck'].value_counts(dropna = False) # 널값 개수 확인 # 널값 개수 합 = 열 단위로 ..