인공지능 32

[Machine Learning] 분류 예측 K-NN

KNeighborsClassifier() : 가장 가까운 n개 데이터(이웃데이터)로 분류 from sklearn.neighbors import KNeighborsClassifier classifier = KNeighborsClassifier(n_neighbors= n) # n_neighbors= 몇개의 데이터로 분석할건지 입력, 디폴트값은 5 >>> classifier = KNeighborsClassifier(n_neighbors=7) >>> classifier.fit(X_train, y_train) >>> y_pred = classifier.predict(X_test) >>> y_pred array([0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, ..

[Machine Learning] 성능 측정 confusion_matrix(), accuracy_score(), classification_report()

confusion_matrix(실제값, 예측값) : 실제값과 예측값을 행, 열로 셋팅해서 위와 같이 결과값 반환 from sklearn.metrics import confusion_matrix >>> cm = confusion_matrix(y_test, y_pred) >>> cm array([[52, 6], [14, 28]], dtype=int64) # 정확도 계산 : accuracy # (52+28) / cm.sum() accuracy_score(실제값, 예측값) : 정확도 계산 from sklearn.metrics import accuracy_score >>> accuracy_score(y_test, y_pred) 0.8 classification_report() : 분류 모델의 성능을 요약하는 데 ..

[Machine Learning] 분류 예측 LogisticRegression

from sklearn.linear_model import LogisticRegression LogisticRegression() # 변수에 저장해서 사용 classifier = LogisticRegression(random_state=2) # train_test_split 로 나눠둔 학습용 데이터를 입력해 학습 classifier.fit(X_train, y_train) 학습이 끝나면 인공지능을 테스트 해봐야 한다 classifier.predict(테스트값 변수) : 예측한 값을 반환(0과 1로 나온다) >>> classifier.predict(X_test) # 테스트용 데이터 X_test array([1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, ..

[데이터 전처리] 데이터 균형 맞추기 SMOTE()

>>> X.shape (392, 8) >>> y.value_counts() # 데이터 불균형 class 0 262 1 130 Name: count, dtype: int64 SMOTE() 사용, up sampling 기법으로 불균형한 데이터의 균형을 맞춰준다. # ! pip install imblearn from imblearn.over_sampling import SMOTE >>> sm = SMOTE(random_state=5) >>> X, y = sm.fit_resample(X, y) >>> X.shape (524, 8) >>> y.shape (524,) >>> y.value_counts() # 데이터 불균형 문제 해결! class 0 262 1 262 Name: count, dtype: int64

[Machine Learning] LinearRegression 인공지능 실제 예측

예측할 값 데이터를 df 컬럼의 순서대로 입력한 Numpy array 생성 생성한 데이터는 1차원 데이터, 때문에 2차원으로 변경 => reshape 인공지능 만들 때 기존에 만들었던 변수 ct에 transform() 함수를 사용해 문자열을 숫자로 변경 만들어두었던 regressor 변수에 predict() 함수를 이용해 값을 예측한다 >>> new_data = np.array([0, 1, 0, 130000, 150000, 400000]) >>> new_data = new_data.reshape(1, 6) >>> regressor.predict(new_data) array([165102.43212675]) # A 회사 운영비는 15만 달러, 마케팅비 40만 달러, 연구 개발비 13만 달러이고 회사 위치는..

[Machine Learning] LinearRegression 오차(error) 구하기

오차(error)란 실제값 - 예측값 (오차가 적을수록 똑똑한 인공지능) # 실제값 - 예측값 변수로 저장 error = y_test - y_pred # 저장한 변수를 제곱하고 평균을 구한다 (error ** 2).mean() >>> y_test 41 77798.83 17 125370.37 20 118474.03 45 64926.08 23 108733.99 14 132602.65 28 103282.38 47 42559.73 32 97427.84 18 124266.90 Name: Profit, dtype: float64 >>> y_pred = regressor.predict(X_test) >>> y_pred array([ 75017.13778857, 129992.67932128, 116991.8622787..

[Machine Learning] LinearRegression 수치 예측

수치 예측은 리니어 리그레이션으로 모델링 알아서 피처스케일링 해주는 착한 녀석.. from sklearn.linear_model import LinearRegression # 변수에 저장해서 사용 regressor = LinearRegression() # 학습용과 테스트용으로 나눴던 데이터중 학습용 데이터를 입력해 학습 regressor.fit(X_train, y_train) regressor.coef_ : 계수 반환 regressor.intercept_ : 상수 반환 >>> regressor.coef_ # 계수 array([ 8.29736108e+00, 1.35646415e+03, -1.36476151e+03, 8.24637324e-01, -1.12195852e-02, 2.80920611e-02]) >..

[데이터 전처리] Training/Test용 데이터 분리 train_test_split()

from sklearn.model_selection import train_test_split train_test_split() : 데이터셋을 학습용과 테스트용으로 나눈다. >>> X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=32) >>> X_train array([[1. , 0. , 0. , 0.73913043, 0.68571429], [0. , 1. , 0. , 0.13043478, 0.17142857], [1. , 0. , 0. , 0.34782609, 0.28571429], [1. , 0. , 0. , 0.91304348, 0.88571429], [0. , 0. , 1. , 0.478260..

[데이터 전처리] 데이터 정규화, 표준화 Feature Scaling, StandardScaler(), MinMaxScaler()

학습 시킬 때 값의 레인지를 맞춰줘야 더 정확한 트레이닝이 가능하다. from sklearn.preprocessing import StandardScaler, MinMaxScaler # 피처 스케일링을 위한 스케일러는, x 용과 y 용 따로 만든다. StandardScaler() : 표준화 # 1. 표준화 >>> X_scaler = StandardScaler() >>> X_scaler.fit_transform(X) array([[ 1. , -0.57735027, -0.57735027, 0.69985807, 0.58989097], [-1. , -0.57735027, 1.73205081, -1.51364653, -1.50749915], [-1. , 1.73205081, -0.57735027, -1.12302..