본문 바로가기

Data Science : Study

Python : csr_matrix (데이터의 수를 줄이는 방법) 5 7 1 4 2 3 6 2 1 6 4 5 7 희소행렬: 대부분의 값이 0. 이런 희소행렬을 메모리 낭비가 적도록 변환하고자 한다! → CSR 형식을 사용! ▶ 필요한 패키지 불러오기 from scipy.sparse import csr_matrix import numpy as np ▶ 0이 아닌 데이터 추출 data = np.array([5,7,1,4,2,3,6,2,1,6,4,5,7]) 첫번째 행부터 왼쪽에서 오른쪽으로 순서대로 0이 아닌 값을 리스트에 넣는다. ▶ 열 위치 col_pos = np.array([2,5,0,1,3,4,5,1,3,0,3,5,0]) 첫번째 행부터 왼쪽에서 오른쪽으로 순서대로 0이 아닌 값의 열 위치를 리스트에 넣는다. (열 번호는 0번부터 시작) ▶ 행 위치 값에 대해 고유한 .. 더보기
Python : (pandas) One- hot encoding ※ 매번 비슷한 내용을 구글링하는 것에 답답해서 항목별로 정리하는 글 ? One-hot encoding ? 하나의 값만 Hot(True, 1)고, 나머지 값은 모두 Cold(False, 0)로 만드는 인코딩 데이터프레임의 특정 컬럼을 one-hot encoding 하고 싶어 : get_dummies (use pandas!) pd.get_dummies(df["column_name"], prefix = '접두사', drop_first = True) prefix: 새로 생기는 더미 컬럼들에 어떤 접두사를 붙일건지 (option) drop_first: 더미 컬럼 중 첫번째 컬럼을 자동삭재 → 더미 컬럼을 만들 경우 n-1개만 있어도 모든 값을 설명 가능하므로 1개를 없앤다 ( dummy trap을 없앤다! ) 더보기
Python : 데이터분석 - 모델 평가 ※ 매번 비슷한 내용을 구글링하는 것에 답답해서 항목별로 정리하는 글 모델이 얼마나 정확히 예측했는지 확인하기 위해서는 평가를 진행해야 한다. 모델에 test x를 이용하여 예측한 test y는 제대로 예측했는지 비교할 대상이 없으므로, train 데이터를 일정 비율로 나눠 일부분은 모델의 학습에, 다른 부분은 모델의 예측에 활용한 뒤 각각 y를 비교해본다. ▶ 평가를 위해 데이터 나누기 from sklearn.model_selection import train_test_split train 데이터를 train_kf, test_kf로 나누는데 사용되는 패키지 데이터를 원하는 비율로 나눠준다 X_train_kf, X_test_kf, y_train_kf, y_test_kf = train_test_split(.. 더보기
Python : 데이터분석 - 모델 생성 및 예측 ※ 매번 비슷한 내용을 구글링하는 것에 답답해서 항목별로 정리하는 글 ▶ 모델 생성을 위한 raw train set, raw test set 분석을 위한 데이터를 불러와서 train, test라는 데이터프레임에 저장하였다. ▶ feature와 label feature_names : 모델 생성에 사용할 컬럼 리스트 - 리스트에 포함되는 컬럼들은 전처리를 통해 이상치를 제거하고, 분석에 용이한 형태로 만든다. label_name : y에 해당하는 컬럼 ▶ 모델 생성을 위한 train set, test set X_train = train[feature_names] X_test = test[feature_names] y_train = train[label_name] ▶ 모델 생성 model.fit(X_train.. 더보기
Python : 데이터 시각화 ※ 매번 비슷한 내용을 구글링하는 것에 답답해서 항목별로 정리하는 글 ▶ 시각화에 필요한 패키지 import seaborn as sns matplotlib을 기반으로 하는 파이썬 시각화 패키지 실습용 데이터를 내장하고 있음 import matplotlib.pyplot as plt 파이썬에서 자료를 차트(chart)나 플롯(plot)으로 시각화(visulaization)하는 패키지 정형화된 차트나 플롯 이외에도 저수준 api를 사용한 다양한 시각화 기능을 제공 ▶ 한번에 여러 그래프를 보여주고 싶어 figure, ( (ax1, ax2, ax3) , (ax4, ax5, ax6) ) = plt.subplots(nrows = 2, ncols = 3) subplot과 달리 한번에 설정을 결정할 수 있다. ▶ fi.. 더보기
Python : (pandas) DataFrame 컬럼 다루기 ※ 매번 비슷한 내용을 구글링하는 것에 답답해서 항목별로 정리하는 글 ▶ 컬럼 내의 유일값의 개수를 알고 싶어 df['A'].value_counts() 각 값이 몇개인지 return된다. ▶ row의 label을 리스트로 출력 df.index ▶ 컬럼 내의 각 값들에 특정 기호(문자, 문자열)가 포함되어 있는지 확인하고 싶어 df['A'].str.contains("기호") 더보기
Python : (pandas) DataFrame 날짜 다루기 ※ 매번 비슷한 내용을 구글링하는 것에 답답해서 항목별로 정리하는 글 ▶ 내용만 날짜인 데이터를 날짜 타입으로 바꾸고 싶어 df[date_col] = pd.to_datetime(df[date_col]) ▶ 날짜의 일부만 확인하고 싶어 (연, 월, 일, 시, 분, 초) df[date_year] = df[date_col].dt.year df[date_month] = df[date_col].dt.month df[date_day] = df[date_col].dt.day df[date_hour] = df[date_col].dt.hour df[date_minute] = df[date_col].dt.minute df[date_second] = df[date_col].dt.second 더보기
Python : (pandas) DataFrame의 기본 ※ 매번 비슷한 내용을 구글링하는 것에 답답해서 항목별로 정리하는 글 ▶ 패키지 불러오기 import pandas as pd # 보통 애칭 많이 사용 ▶ csv 파일 불러오기 df = pd.read_csv("파일주소") ▶ csv 파일 저장하기 df.to_csv('파일명.csv', encoding = 'utf-8-sig') encoding 옵션 주면 한글 저장 시 깨지지 않는다. ▶ 빈 데이터프레임 생성하기 df = pd.DataFrame(columns = ['c1','c2','c3']) 컬럼명 및 개수는 데이터프레임 생성 시 정해줘야 한다(c1, c2, c3). ▶ 데이터프레임 내용 미리보기 : 5개 확인가능, 괄호 안에 숫자 넣을 경우 그 수 만큼 row 출력 df.head() series 사용가능 .. 더보기