본문 바로가기

분류 전체보기327

sklearn - preprocessing 1. Scaling StandardScaler() : 평균이 0, 표준편차가 1이 되도록 정규화 RobustScaler(): 중강값이 0, IQR(interquartile range)이 1이 되도록 스케일링 MinMaxScaler() : 최대값이 1, 최소값이 0이 되도록 스케일링 MaxAbsScaler() : 0을 기준으로 절대값이 가장 큰 수가 1 또는 -1이 되도록 스케일링 fit: 분포 모수를 객체 내에 저장 transform: 학습용 데이터를 입력하여 저장된 분포 모수를 이용해서 데이터를 스케일링 fit_transform: fit-transform을 합쳐서 한번에 이용 from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() .. 2020. 8. 31.
난수, 랜덤 #include using namespace std; int main(){ random_device rd; //진짜 난수 발생 mt19937 mt(rd()); uniform_int_distribution rnd(0, n-1); //min-max 폐구간 범위 //rnd(mt) -> 0~n-1사이 난수 생성 } random_device 객체 rd는 rd()로 unsigned int범위(0~4294967295) 난수를 생성한다. mt19337은 균등한 분포의 난수를 만들어주는 난수 엔진이다. 이 객체를 만들 때 생성자에 random_divce 객체를 넣어서 만들면 된다. uniform_int_distribution도 유사한 난수 엔진인 것으로 보인다. 2020. 8. 28.
3 - 다중 레이블 분류, 다중 출력 분류 3.6 다중 레이블 분류 이진 레이블이 여러 개일 때의 분류를 다중 레이블 분류라고 한다. mnist에서 숫자가 7이상인지와 홀수인지를 학습하는 분류기를 만들어보자. 다중 분류기를 지원하는 KNeighborsClassifier를 사용. from sklearn.neighbors import KNeighborsClassifier y_train_large = (y_train>=7) y_train_odd = (y_train%2==1) y_multilabel = np.c_[y_train_large, y_train_odd] knn_clf = KNeighborsClassifier() knn_clf.fit(X_train, y_multilabel) 손글씨 5를 7미만이고 홀수라는 것을 예측했다. knn_clf.predi.. 2020. 8. 27.
3 - 에러분석 3.5 에러분석 적절한 모델을 찾았다면 이 모델의 성능을 향상시킬 방법을 찾아야 한다. 에러를 분석하여 통찰을 얻을 수 있다. cross_val_predict()함수로 모든 클래스에 대한 예측값을 만들어서 오차 행렬을 만들어 본다. (이진 분류기에서와 마찬가지로 행이 실제 값이고 열이 예측값이다.) (i행 j열 즉 $C_i,j$는 실제 클래스가 i인 것을 j로 예측한 것의 개수를 의미한다.) y_train_pred = cross_val_predict(sgd_clf, X_train_scaled, y_train, cv=3) conf_mx = confusion_matrix(y_train, y_train_pred) conf_mx #array([[5576, 0, 21, 6, 9, 43, 37, 6, 224, 1].. 2020. 8. 27.