مراجعة: جيران النبيذ
جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 10 من 58.
التحدي
سهلارسم خريطة مثل الخريطة الأولى في هذا الفصل، لكن للنبيذ. يقسّم الكود المبدئي 178 نوعًا من النبيذ (ميزتان، والأصناف من 0 إلى 2)، ويعرض ks ويضع تسميات على الرسم البياني.
- قِس المجموعتين، مع الملاءمة على أنواع النبيذ في مجموعة التدريب.
- اطبع قيمة k التي تحقق أفضل دقة اختبار (في الوقت الحالي: سيكون لدى الفصل 7 حكم أكثر إنصافًا).
- باستخدام قيمة k هذه، املأ الخريطة: شبكة
xxوyy، بحجم 100 في 100، من -3 إلى 3 في كلا الاتجاهين، والنتائج فيzz. - اعرض أنواع النبيذ في مجموعة التدريب بعد تحجيمها فوق الخريطة، مع تسميات من
names؛ وأضف وسيلة إيضاح.
باستخدام الكحول والفلافانويدات:
Best k: 13 (test accuracy 0.956)يصف Coddy خريطتك.
جرّب بنفسك
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
# 178 عينة نبيذ من ثلاثة أصناف، الفئات 0، 1، 2
wine = load_wine()
# العمودان 6 و12: flavanoids وproline
X = wine.data[:, [6, 12]]
y = wine.target
names = ["cultivar A", "cultivar B", "cultivar C"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
ks = range(1, 32, 2) # k = 1, 3, 5, ..., 31
fig, ax = plt.subplots()
ax.set_title("Wine Neighbors")
ax.set_xlabel("flavanoids (scaled)")
ax.set_ylabel("proline (scaled)")
# اكتب الكود الخاص بك أدناه
جميع دروس التعلّم الخاضع للإشراف
تدرّب بنفسك: مترجم Python عبر الإنترنت