ML/도서
핸즈온 머신러닝 2장
열심히해요
2021. 4. 2. 19:48
파일 불러오기
모듈명 | 설명 |
os | |
shutil | 고수준 파일 연산. 파일과 파일 모음에 대한 여러가지 고수준(?) 연산을 제공. 파일 복사, 삭제 등 |
tarfile | gzip, bz2, lzma압축을 사용할 수 있음. tar를 읽고 쓸 수 있음. |
urllib | url 처리 모듈모듈 모듈명 설명 os shutil 고수준 파일 연산. 파일과 파일 모음에 대한 여러가지 고수준(?) 연산을 제공. 파일 복사, 삭제 등 tarfile gzip, bz2, lzma압축을 사용할 수 있음. tar를 읽고 쓸 수 있음. urllib url 처리 모듈 |
os.mkdir : 폴더 생성
os.makedirs : 폴더를 재귀적(?)으로 생성.(exist_ok 설정시 해당 파일 있어도 오류 안뜸)
이게 무슨말이냐?
mkdir로 폴더를 생성할때, 지정한 경로에 폴더가 없으면 FileNotFoundError가 뜸.
mkdirs는 지정한 경로에 맞는 폴더가 없으면 직접 생성해 나감으로써 최종적으로 지정한 경로에 폴터가 생성 되도록 함.
import os
path = './new_dir/temp' # 작업공간 상에 new_dir이 없는 경우.
os.mkdir(path) # FileNotFoundError 발생
os.mkdirs(path, exist_ok=True) # new_dir 생성 -> temp 생성(Error 미발생)
urllib.request.urlretrieve(url, path/savename) : 파일 저장
tarf = tarfile.open(tar_path/filename) : tar 파일 열기
tarf.extractall(save_path) : 압축 풀기
tarf.close() : tar 파일 닫기
데이터프레임 다루기
sklearn | |
train_test_split | from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=42, stratify=y) train, test set을 y비율을 유지하며 분리함. 데이터프레임을 원하는 만큼 넣을 수 있고 친절하게 다 분리해줌. W,X,Y,Z ... |
StratifiedShuffleSplit | 데이터를 Stratified Sampling 할 때 사용. 분할한 데이터를 반환해주는 것이 아니라, 인덱스를 반환해줌 CV에 사용됨 sss = StratifiedSuffleSplit(n_split, test_size, random_state) for train_idx, test_idx in sss.split(df, df['stratified columns']): train, test = df.loc[train_idx], df.loc[test_idx] n_split : 분할 횟수 |
SimpleImputer | from sklearn.impute import SimpleImputer SimpleImputer(strategy='median') 결측치 채워줌 |
joblib.dump | 큰 넘파이 배열을 저장하는데 아주 효율적인 패키지. 사이킷런 모델을 저장할 수 있음 import joblib joblib.dump(model, "model.pkl") model_loaded = joblib.load("my_model.pkl") |
df.info() | 컬럼별로 자료형, 결측치 제외 총 count알 수 있음 |
df.describe() | 컬럼별로 기초통계량 확인 가능(범주형 제외) |
df['col'].value_counts() | 각 범주별 count |
df.plot |
strat_train.plot(kind="scatter", x="longitude", y="latitude", alpha=0.2, s : 버블의 크기, c : 버블의 색깔, cmap :버블 색매칭 |
pd.cut | binning 해주는 함수 pd.cut(df['col'], bins=[0,1,2,3,np.inf], labels=[0,1,2,3]) |
numpy | |
np.arange(start, stop, step) | start부터 stop-1 까지 step간격을 갖는 수열생성 start = 0, step=1을 default 값으로 가짐 |
np.random.permutation() | 인자로 하나의 값이나 seq를 받아서 array를 랜덤으로 섞어줌. 한개의 값을 받는 경우 -> 0~값(간격은 1)을 갖는 array로 변환 후 섞어줌 seq를 받는 경우 그대로 섞어줌 |
np.random.suffle() | 인자로 array만 받을 수 있음. permutation의 경우 본래의 array는 변경되지 않지만, suffle의 경우 본래의 array를 변경시킴. |