Machine Learning knn from kaggle Digit Recognizer
knn을 배워서 책의 필기체 검사하는 코드를 토대로 캐글 101 중 필기체 검사를 해보았다.
결국 혼자의 힘으로는 해내지 못했다..
아직 파이썬 기술이 많이 부족하다는 것을 깨닫고
캐글에 올라와있는 스크립트 중에 knn을 사용하고 있는 스크립트를 갖고 돌려봤다..
파이썬이랑 그런지 엄청 오래 걸린다..
또 다른 스크립트들을 보면서 느낀 건 딥러닝이 너무 우세하다는 것이었다..
2. 위의 코드는 교차 검증을 통해 정확도를 높였다.
3. scikit learn의 함수를 통해 코드를 간단히 하였다.
4. 아직 한 참 남았다는 것을 느꼈다..
결국 혼자의 힘으로는 해내지 못했다..
아직 파이썬 기술이 많이 부족하다는 것을 깨닫고
캐글에 올라와있는 스크립트 중에 knn을 사용하고 있는 스크립트를 갖고 돌려봤다..
파이썬이랑 그런지 엄청 오래 걸린다..
또 다른 스크립트들을 보면서 느낀 건 딥러닝이 너무 우세하다는 것이었다..
from numpy import * import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score train_data = pd.read_csv("C:/Users/llewyn/Downloads/train.csv") test_data = pd.read_csv("C:/Users/llewyn/Downloads/test.csv") print("train data shape is : ", train_data.values.shape) print("test data shape is : ", test_data.values.shape) trainY = ravel(train_data.values[:10000, 0]) trainX = train_data.values[:10000, 1:] trainX[trainX > 0] = 1print("trainX[0] is :") print(trainX[0].reshape((28, 28))) validY = ravel(train_data.values[40000:, 0]) validX = train_data.values[40000:, 1:] validX[validX > 0] = 1print("validX[0] is :") print(validX[0].reshape((28, 28))) testX = test_data.values testX[testX > 0] = 1print("testX[0] is :") print(testX[0].reshape((28, 28))) clf = KNeighborsClassifier(n_neighbors=5) clf.fit(trainX, trainY) #cross validationpredictions = clf.predict(validX) accuracy = accuracy_score(validY, predictions) print("the accuracy of kNN is : %f" % accuracy) #predict test datasetpredictions = clf.predict(testX) #save predictionskNN_Result = pd.DataFrame(predictions, index=range(1, predictions.shape[0]+1)) kNN_Result.columns=["'Labels'"] kNN_Result.index.name = "'ImageId'"kNN_Result.to_csv("C:/Users/llewyn/Downloads/kNN_Result.csv")출처 : https://www.kaggle.com/charleswuyy/digit-recognizer/knn4digitrecognition
우선 위의 코드를 보면서 깨달은 점은
1. 검증할 때 모든 데이터를 할 필요 없이 위처럼 1만개의 샘플을 가지고 검증했다.2. 위의 코드는 교차 검증을 통해 정확도를 높였다.
3. scikit learn의 함수를 통해 코드를 간단히 하였다.
4. 아직 한 참 남았다는 것을 느꼈다..
댓글
댓글 쓰기