def calculate_accuracy(X_test, y_test, X_train, y_train, k=5): predictions = [] for test_point in X_test: pred_label = knn(X_train, y_train, test_point, k) predictions.append(pred_label)
predictions = np.array(predictions) accuracy = (predictions == y_test).sum() / y_test.shape[0] calculate_accuracy(X_test, y_test, X_train, y_train, k=5) test_df = pd.read_csv("test_data.csv") test_df.head() test_data = test_df.values test_images = test_data[:10] test_images.shape for test in test_images: im = test.reshape((28,28)) plt.figure() plt.imshow(im, cmap='gray') plt.show() print("Label:", knn(X_train, y_train, test))
XULOSA
Ushbu topshiriqda men eng oddiy mashinani o'rganish klassifikatori - KNN haqida bilib oldim. KNN algoritmi noma'lum ma'lumotlar nuqtasini o'quv majmuasidagi har bir ma'lumot nuqtasi bilan taqqoslash orqali noma'lum ma'lumotlar nuqtalarini tasniflaydi. Ushbu taqqoslash masofa funksiyasi yoki o'xshashlik ko'rsatkichi yordamida amalga oshiriladi. Keyin, test to'plamidagi eng ko'p o'xshash misollardan biz har bir yorliq uchun "nuqtalar" sonini to'pladim. Eng ko'p nuqta to'plagan toifa umumiy tasnif sifatida tanlanadi. Oddiy va intuitiv bo'lsa-da va hatto ba'zi vaziyatlarda juda yaxshi aniqlikka erisha olsa ham, KNN algoritmi bir qator kamchiliklarga ega. Birinchisi, u aslida hech narsani "o'rganmaydi" - agar algoritm xatoga yo'l qo'ysa, keyinchalik tasniflash uchun o'zini "tuzatish" va "yaxshilash" imkoni yo'q. Ikkinchidan, maxsus ma'lumotlar tuzilmalarisiz, k-NN algoritmi ma'lumotlar nuqtalari soniga qarab chiziqli ravishda o'zgaradi va bu katta ma'lumotlar to'plamlari uchun kam qo’llaniladigan algoritmdir.
Foydalanilgan adabiyotlar ro‘yxati
https://www.youtube.com/watch?v=Cc8a_cMzyUk&ab_channel=FastDataScienceLtd
https://github.com/woodthom2/predict_customer_spend
Do'stlaringiz bilan baham: |