for name, group in iris_by_class: # print(name,len(group)) plt.scatter(group['petal_length'], group['petal_width'], label=name) plt.legend() plt.xlabel('petal_length') plt.ylabel('petal_width') plt.show() # 데이터 세트를 points와 labels로 구분 X = iris.iloc[:, :-1].to_numpy( ) # points /// Class 를 제외한 모든 행 // .to_numpy() 꼭 해주기 y = iris.iloc[:, 4].to_numpy() # labels /// Class # 학습/검증(train/test) 세트로 분리 X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2) # Ctrl + Alt + 방향키 기능! # Scaling scaler = MyScaler() # 생성자 호출 scaler.fit(X_train) # 스케일링 하기 위한 평균과 표준 편차 계산 X_train = scaler.transform(X_train) # 데이터 변환 (스케일링 해주는 것) X_test = scaler.transform(X_test) # k-NN 알고리즘 적용 knn = MyKnnClassifier(n_neighbors=9) # 분류기 객체 생성 knn.fit(X_train, y_train) # 학습 y_pred = knn.predict(X_test) # 예측 print(np.mean(y_test == y_pred)) # 예측 결과 확인 # Confusion Matrix 만들기 print(confusion_matrix(y_test, y_pred))
plt.show() for name, group in iris_by_class: # print(name, len(group)) plt.scatter(group['sepal_length'], group['petal_length'], label=name) plt.legend() plt.xlabel('sepal_length') plt.ylabel('petal_length') plt.show() # 데이터 세트를 points와 labels로 구분 X = iris.iloc[:, :-1].to_numpy() # points y = iris.iloc[:, 4].to_numpy() # labels # 학습/검증(train/test) 세트로 분리 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) # Scaling scaler = MyScaler() # 생성자 호출 scaler.fit(X_train) # 스케일링 하기 위한 평균과 표준 편차 계산 X_train = scaler.transform(X_train) # 데이터 변환 X_test = scaler.transform(X_test) # k-NN 알고리즘 적용 knn = MyKnnClassifier(n_neighbors=9) # 분류기 객체 생성 knn.fit(X_train, y_train) # 학습 y_pred = knn.predict(X_test) # 예측 print(np.mean(y_test == y_pred)) # 예측 결과 확인 print(confusion_matrix(y_test, y_pred)) print(classification_report(y_test, y_pred))
plt.ylabel('sepal_width') plt.show() for name, group in iris_by_class: # print(name, len(group)) plt.scatter(group['petal_length'], group['petal_width'], label=name) # -> 그래프 class수만큼 그려줌 plt.legend() plt.xlabel('petal_length') plt.ylabel('petal_width') plt.show() iris_point = iris.iloc[:, 0:3].to_numpy() iris_label = iris.iloc[:, 4].to_numpy() point_train, point_test, label_train, label_test = train_test_split( iris_point, iris_label, test_size=0.2) scaler = MyScaler() scaler.fit(point_train) point_train = scaler.transform(point_train) point_test = scaler.transform(point_test) knn = MYKnnClassifier(5) knn.fit(point_train, label_train) pred = knn.predict(point_test) report = classification_report(label_test, pred) confusion = confusion_matrix(label_test, pred) # print('아이리스 데이터') # print(np.mean(label_test == pred)) # print(confusion)