تعلم الآلة الخوارزميات أساس KNN

هذا المقال هو عبارة عن تجميع للAI Yanxishe بلوق التكنولوجيا، والعنوان الأصلي:

آلة أساسيات التعلم مع خوارزمية الجار الأقرب

الترجمة | الأخ الأصغر، والتدقيق قارب نهر | Lvxin يمكن الانتهاء | تشى هاو

الرابط الأصلي:

https://towardsdatascience.com/machine-learning-basics-with-the-k-nearest-neighbors-algorithm-6a6e71d01761

وبناء على آلة تعلم أساسيات K أقرب خوارزمية الجار

ك أقرب جار (KNN) خوارزمية بسيطة وسهلة لتنفيذ خوارزميات تعلم الآلة تحت إشراف التي يمكن استخدامها في حل مشاكل التصنيف والانحدار. وقفة! دعونا تبدأ هنا.

المقبل، ونحن سوف يبقيه السوبر بسيط!

كسر المشكلة

أشرف هناك تعلم آلة الخوارزميات (وآلة غير خاضعة للرقابة تعلم الخوارزميات العكس) خوارزمية تعتمد على البيانات المدخلة هو المسمى وظيفة، عندما علامة معينة ليست بيانات جديدة، فإن وظيفة إنتاج ناتج المناسب التعلم.

تخيل كمبيوتر عندما كان طفلا، ونحن في القائمين عليه (مثل أحد الوالدين أو الوصي أو المعلم)، ونحن نأمل أن الطفل (الكمبيوتر) فهم ما كان عليه مثل الخنازير. نقدم لك مجموعة من قطع مختلفة من الصورة للأطفال، وبعضها خنزير، ما تبقى من صورة قد تكون أي شيء (القطط والكلاب، وما إلى ذلك).

عندما نرى خنزير، ونحن صاح "الخنزير!"! عندما لا يكون خنزير، ونحن صاح: "لا، لا خنزير!"! "؟ وكانوا بشكل صحيح (أكثر من مرة) قال خنزير"، بعد بضع مرات، والأطفال القيام به معا، أظهرنا لهم الصورة، ثم تساءل: خنزير! "!" أو "لا، ليس خنزير!" اعتمادا على الصورة ل. هذا هو آلة التعلم تحت إشراف.

"خنزير!"

يستخدم تحت إشراف خوارزمية التعلم الآلي من أجل حل المشاكل تصنيف أو الانحدار.

تصنيف الناتج القيم المنفصلة. على سبيل المثال، "مثل الأناناس على البيتزا" و "أنه لا يحب الأناناس على البيتزا" غير منفصلة. ليس هناك أرضية مشتركة. الأطفال تعليم للتعرف على خنزير فوق القياس هو مثال آخر على مشاكل التصنيف.

بشكل عشوائي البيانات صورة العرض

هذا يظهر في الصورة قد يكون تصنيف البيانات مثال بسيط على ما يبدو. كان لدينا مؤشرا (أو مجموعة من تنبؤ) والتسمية. في هذه الصورة، ونحن قد محاولة العمر (توقع) أن يتنبأ الشخص هو (1) لا (0) مثل الأناناس على البيتزا.

الممارسة القياسية هي خوارزمية تصنيف الإخراج (علامة) أعرب كعدد، مثل 1، 0 أو -1. في هذه الحالة، وهذه الأرقام هي ممثل بحتة. لا ينبغي أن أداء العمليات الحسابية، لأنه لا معنى له. التفكير في الامر. ما هو "مثل الأناناس" + "لا أحب الأناناس"؟ نعم. يمكننا تلخيص لهم، لذلك لا ينبغي لنا أن نضع أرقام ميزة إضافية التعبير.

الانحدار يصدر العدد الحقيقي (رقم مع الفاصلة العشرية) كإخراج. على سبيل المثال، يمكننا أن البيانات الواردة في الجدول أدناه لتقدير ارتفاع الوزن شخص معين لاستخدام.

عرض صورة جزء من الطول والوزن قواعد البيانات SOCR

تحليل الانحدار البيانات المستخدمة في نظرة مماثلة للبيانات هو مبين في الشكل. لدينا المتغير المستقل (أو مجموعة من المتغيرات المستقلة) والمتغير التابع (المتغير التابع في محاولة لتخمين نظرا للحجج). على سبيل المثال، يمكننا أن نقول أن ارتفاع هو المتغير المستقل، في حين أن الوزن هو المتغير التابع.

وعلاوة على ذلك، يشار كل صف عموما كمثال، والمراقبة أو نقطة بيانات، وكل عمود (لا تشمل التسمية / المتغير التابع) ويشار إلى القيم التنبؤية والأبعاد والخصائص أو وسيطة.

غير خاضعة للرقابة خوارزمية تعلم الآلة لا تستخدم أي إدخال البيانات التسمية - وبعبارة أخرى، لا المعلم (علامة) يقول الطفل (الكمبيوتر) عندما هو صواب وما هو خطأ عندما بحيث يمكن الذاتي صحيحة.

ويحاول تعلم مختلفة تشرف عليها تعلم وظيفة، هذه الوظيفة تسمح لنا في بعض الحالات إعطاء بيانات غير المسماة جديدة للتنبؤ، والتعلم غير خاضعة للرقابة تحاول معرفة الهيكل الأساسي للبيانات، بحيث يكون لدينا المزيد من البيانات التفاهم.

أقرب الجار

يفترض KNN خوارزمية أن شيئا من هذا القبيل موجود في ختام المحلي. وبعبارة أخرى، فإن الأمور مثل قريبة من بعضها البعض.

"مثل يجذب مثل".

عرض نقاط البيانات صورة مماثلة موجودة عادة في كيفية قريبة من بعضها البعض

علما بأن في الشكل أعلاه، في معظم الحالات، ونقاط بيانات مشابهة قريبة من بعضها البعض. ويستند KNN خوارزمية على افتراض أنه من أجل جعل خوارزمية مفيدة. KNN استخدام بعض الأفكار الرياضية مشابهة لمرحلة الطفولة عندما علمنا من الممكن (التي يشار إليها أحيانا بعد أو قرب أو القرب)، ويتم احتساب هذا المخطط على المسافة بين نقطة.

ملاحظة: قبل المتابعة، فمن الضروري أن نفهم كيف يمكننا حساب المسافة بين نقطة على الرسم البياني. إذا كنت لم تكن مألوفة أو بحاجة إلى تجديد في طريقة الحساب، يرجى قراءة "المسافة بين نقطتين،" ثم أعود.

وهناك طرق أخرى لحساب المسافة، اتجاه واحد قد يكون أفضل، وهذا يتوقف على مشكلة نعمل على حلها. ومع ذلك، فإن المسافة في خط مستقيم (المعروف أيضا باسم المسافة الإقليدية) هو خيار شعبي ومألوفة.

KNN خوارزمية (الإنجليزية)

1. تحميل البيانات

تتم تهيئة 2. K إلى عدد من الدول المجاورة من اختيارك

3. للحصول على كل البيانات عينة

3.1 المسافة بين الاستعلام والمثال النموذجي الحالي للبيانات الحساب.

3.2 المسافة ومؤشر تضاف إلى مجموعة مرتبة من الأمثلة في

4. اضغط على مسافة مؤشر والمسافة أمرت مجموعة مرتبة من الأصغر إلى الأكبر (في ترتيب تصاعدي)

اختيار من الإدخالات K أول من جمع أمر

6. الحصول على إدخالات العلامة المختارة K

7. إذا كانت التسمية عودة إلى إرجاع متوسط K

8. إذا كان تصنيف ووضع علامات عودة K

KNN تحقيق (من الصفر)

من مجموعات استيراد Counterimport mathdef KNN (البيانات، الاستعلام، ك، distance_fn، choice_fn): neighbor_distances_and_indices = # 3. للحصول على كل المثال في بيانات مؤشر، مثلا في اعدد (البيانات): # 3.1 احسب المسافة بين المثال الاستعلام و الحالي # المثال من مسافة البيانات = distance_fn. (على سبيل المثال ، الاستعلام) # 3.2 أضف المسافة ومؤشر المثال إلى جمع أمر neighbor_distances_and_indices.append ((المسافة، مؤشر)) # 4. فرز أمر مجموعة من المسافات ومؤشرات من # الأصغر إلى الأكبر (تصاعديا) من قبل sorted_neighbor_distances_and_indices مسافات = مرتبة (neighbor_distances_and_indices) # 5. اختيار الإدخالات K الأولى من k_nearest_distances_and_indices جمع فرزها = sorted_neighbor_distances_and_indices # 6. الحصول على التسميات من الإدخالات K اختيار k_nearest_labels = # 7. إذا الانحدار (choice_fn = متوسط)، والعودة متوسط K تسميات # 8. إذا تصنيف (choice_fn = واسطة)، وإعادة وضع لK تسميات تعود k_nearest_distances_and_indices، choice_fn (k_nearest_labels) يعني صفر (التسميات): عودة مبلغ (التسميات) / ليون (التسميات) مواطنه واسطة (التسميات): عودة عداد (التسميات) .most_common (1) مواطنه euclidean_distance (point1، point2): sum_squared_distance = 0 لأنني في مجموعة (ليون (point1)): sum_squared_distance + = math.pow (point1  - point2 2) عودة math.sqrt (sum_squared_distance) الرئيسية مواطنه: '' '# البيانات الانحدار # # العمود 0: الارتفاع (بوصة) # العمود 1: الوزن (جنيه)' '' reg_data = ، ،> # سؤال: # بالنظر إلى البيانات التي لدينا، ما هو أفضل كشفها في وزن شخص ما إذا كانوا 60 بوصة reg_query طويل القامة = reg_k_nearest_neighbors، reg_prediction = KNN (reg_data، reg_query، ك = 3، distance_fn = euclidean_distance؟ ، choice_fn = الوسط) '' '# بيانات تصنيف # # العمود 0: عمر # العمود 1: يحب الأناناس' '' clf_data = ، ، ، ، ، ، ، ، ، ،> # سؤال: # بالنظر إلى البيانات التي لدينا، يقوم 33 سنة من العمر مثل الأناناس على هم البيتزا؟ clf_query = clf_k_nearest_neighbors، clf_prediction = KNN (clf_data، clf_query، ك = 3، distance_fn = euclidean_distance، choice_fn = واسطة) إذا __name__ == '__main_ _ ': الرئيسية

حدد القيمة الصحيحة لK

لتحديد K المناسب من البيانات الخاصة بك، ركضنا مع قيمة K مختلفة عدة مرات KNN خوارزمية، وحدد K للحد من عدد من الأخطاء التي واجهناها مع الحفاظ على خوارزميات التنبؤ بدقة عندما مجموعة البيانات لم يسبق له مثيل القدرات.

وإليك بعض الأشياء لتذكر:

عندما نقلل من قيمة K إلى 1، ونحن توقعات سيصبح غير مستقر. تخيل صورة K = 1، لدينا نقطة الاستعلام، وتحيط بها عدة الأحمر والأخضر (أنا أفكر في الزاوية اليسرى العليا فوق خريطة ملونة)، ولكن الأخضر هو فقط أقرب جار. من المعقول أن نقول إننا نعتقد أن نقطة الاستعلام المرجح أن يكون أحمر، ولكن منذ K = 1، KNN توقع بشكل غير صحيح نقطة الاستعلام الخضراء.

في المقابل، مع زيادة في قيمة K، نظرا لأغلبية الأصوات / المتوسط، نتوقع يصبح أكثر استقرارا، وبالتالي أكثر عرضة لتقديم تنبؤات أكثر دقة (تصل إلى نقطة معينة). في النهاية، نحن نبدأ في رؤية أخطاء المزيد والمزيد. وهو في هذه النقطة، ونحن نعرف أن لدينا قيم K دفعت بعيدا جدا.

إذا كان لنا أن يصوت أغلبية في العلامة (على سبيل المثال، حدد وضع في مشاكل التصنيف)، ونحن وعادة ما يتم تعيين K إلى عدد فردي، حتى لا يكون هناك شوط فاصل.

التفوق

خوارزمية بسيطة.

ليست هناك حاجة إلى نموذج، وضبط العديد من المعلمات، أو افتراضات إضافية.

الخوارزمية هو عام. ويمكن استخدامه للتصنيف، الانحدار والبحث (كما سنرى في القسم التالي).

عيب

حيث بلغ عدد العينات و / أو مؤشرا / المتغيرات المستقلة، الخوارزمية يصبح بطيئا جدا.

KNN في الممارسة

العيب الرئيسي من KNN مع زيادة كمية البيانات يصبح بطيئا جدا، الأمر الذي يجعل الحاجة البيئة لجعل بسرعة التنبؤ، تصبح خيارا واقعيا. وبالإضافة إلى ذلك، هناك خوارزمية أسرع يمكن أن تولد التصنيف والانحدار نتائج أكثر دقة.

ومع ذلك، إذا كان لديك ما يكفي من موارد الحوسبة لمعالجة البيانات التي تستخدم للتنبؤ بسرعة، KNN تزال تساعد في حل المشكلة من أولئك الذين يعتمدون على تحديد الحلول كائنات مماثلة. مثال على ذلك هو استخدام KNN نظام توصية الخوارزمية، وهو تطبيق البحث KNN.

النظام الموصى بها

من حيث الحجم، انها مثل المنتجات الموصى بها على الأمازون، وظهرت على المواد الإعلامية، توصيات الفيلم على نيتفليكس، أو التوصية شريط فيديو على موقع يوتيوب. ومع ذلك، يمكننا أن نكون على يقين، نظرا لكمية هائلة من البيانات التي يتعامل معها، وأنها تستخدم بطريقة أكثر كفاءة لتقديم توصيات.

ومع ذلك، يمكننا استخدام المعرفة المكتسبة في هذه المقالة، على نسخة نطاق أصغر منها نظام التوصية. لذلك دعونا بناء نواة لنظام توصية الفيلم.

ما نريد أن الإجابة على الأسئلة؟

ونظرا لمجموعات البيانات الفيلم، وما الفيلم هو الأكثر مشابهة للاستعلام من خمسة الفيلم؟

الفيلم جمع البيانات

إذا نحن نعمل في نيتفليكس، هولو أو شجونه، يمكننا الحصول على البيانات من مستودع البيانات الخاصة بهم. ولكن لأننا لسنا في هذه الوظائف، لذلك لدينا للحصول على البيانات بطرق أخرى. يمكننا استخدام المكتبة من تعلم الآلة UCI، وبعض من مجموعات البيانات بيانات الفيلم نوع الفيلم، أو إنشاء البيانات الخاصة بنا جهد.

التنقيب والتنظيف وإعداد البيانات

إذا كنا سنحصل على البيانات من أي مكان، من المحتمل أن يكون بعض المشاكل، ونحن بحاجة إلى تصحيح هذه القضايا، وذلك استعدادا لخوارزمية KNN. على سبيل المثال، قد لا يكون المطلوب في تنسيق البيانات الخوارزمية، أو يتم إرسالها الخوارزميات قبل صدور البيانات، يمكن للبيانات مفقودة، ولذا فإننا ينبغي أن تملأ أو حذفها.

نحن KNN فوق تطبيقات تعتمد على البيانات المهيكلة. انها تحتاج الى شكل جداول. وبالإضافة إلى ذلك، يفترض تنفيذ أن جميع أعمدة تحتوي على بيانات رقمية، وآخر واحد يمكننا تسمية البيانات لديه بعض الميزات لتنفيذه. لذلك، لا يهم أين نحصل على البيانات، ونحن بحاجة إلى الامتثال لهذه القيود.

البيانات التالية مثال نظفنا قد ترغب البيانات. يتكون هذه البيانات من 30 فيلما، بما في ذلك سبعة أنواع من البيانات وكل تصنيف الفيلم IMDB. تسميات الأعمدة كلها الصفر، لأننا لا تستخدم هذه المجموعة البيانات لتصنيف أو الانحدار.

مجموعات البيانات توصية فيلم محلية الصنع

وبالإضافة إلى ذلك، عند استخدام خوارزمية KNN، هناك شيء لا تعتبر (مثل الممثلين والمخرجين والموضوعات) بين الأفلام، وذلك ببساطة لأن عدم وجود بيانات التقاط البيانات المركزية من هذه العلاقات. لذلك، عندما نقوم بتشغيل KNN خوارزمية لمعلوماتنا، تشابه فقط على IMDB التصنيف ويشمل نوع والأفلام.

باستخدام خوارزمية

تخيل. نحن هنا موقع MoviesXb، وهو نوع الفيلم خيالية المنتجات المشتقة، ونحن قد واجهت "المشاركة". نحن لسنا متأكدين اذا كان يريد ذلك، ولكن من نوع لجذب لنا، نحن غريبة جدا عن الأفلام الأخرى المماثلة. نحن انزل الى "أشبه هذا" المقطع لمعرفة ما MoviesXb اقتراحات خوارزمية يبدأ العتاد للتدوير.

موقع MoviesXb يرسل الطلب إلى نهاية ظهرها، فإنه سأل عن خمسة من أكثر مشابهة لفيلم "واشنطن بوست". هناك الخلفية ونوصي بالضبط نفس مجموعة البيانات. لأول مرة "واشنطن بوست" إلى إنشاء البنك قال (المعروف على نطاق واسع ناقلات ميزة)، ثم قم بتشغيل على غرار البرنامج التالي للبحث و "واشنطن بوست" الأكثر على غرار الأفلام الخمسة، وأخيرا يرسل النتائج إلى الموقع MoviesXb.

من knn_from_scratch KNN الاستيراد، recommend_movies euclidean_distance صفر (movie_query، k_recommendations): raw_movies_data = مع فتح ( 'movies_recommendation_data.csv'، 'ص') كما MD: # تجاهل السطر الأول (عناوين) بجوار (MD) # قراءة البيانات في الذاكرة لخط في md.readlines: data_row = line.strip.split ( '،') raw_movies_data.append (data_row) # تحضير البيانات لاستخدامها في KNN خوارزمية عن طريق التقاط # الأعمدة ذات الصلة، وتحويل الأعمدة رقمية # للأرقام منذ أنها كانت تقرأ في كسلاسل movies_recommendation_data = لالتوالي في raw_movies_data: data_row = قائمة (خريطة (تعويم، الصف )) movies_recommendation_data.append (data_row) # استخدام خوارزمية KNN للحصول على 5 أفلام التي هي الأكثر # مماثلة ل وrecommendation_indices بوست، _ = KNN (movies_recommendation_data، movie_query، ك = k_recommendations، distance_fn = euclidean_distance، choice_fn = امدا س: لا شيء). movie_recommendations = ل_، مؤشر في recommendation_indices: movie_recommendations.append (raw_movies_data ) عودة movie_recommendations إذا __name__ == '__main__': the_post = # ناقلات ميزة لوrecommended_movies المشاركة = recommend_movies (movie_query = the_post، k_recommendations = 5) # طباعة عناوين الفيلم الموصى بها لتوصية في recommended_movies: طباعة (التوصية )

عندما كنا تشغيل هذا البرنامج، ونحن نرى أوصى MoviesXb "12 سنة عبد"، "المنشار ريدج"، "ادفع الملكة بطاقة"، "عاصف"، و "عقل جميل". والآن ونحن نفهم تماما كيف يعمل خوارزمية KNN، فإننا سوف تكون قادرة على شرح بدقة كيف يتم وضع KNN خوارزمية إلى الأمام هذه التوصيات. تهانينا!

ملخص

ك أقرب الجار (KNN) خوارزمية بسيطة تحت إشراف الجهاز خوارزمية التعلم يمكن أن تستخدم لحل مشاكل التصنيف والانحدار. فإنه من السهل لتنفيذ وفهم، ولكن هناك عيب واحد رئيسي هو أن معدل الزيادة في الحجم مع استخدام البيانات ستكون بشكل ملحوظ أبطأ.

KNN إلى العمل من خلال إيجاد المسافة بين الاستعلام والبيانات في كل من الأمثلة، حدد أمثلة عددية محددة (K) الأقرب إلى الاستعلام، ثم حدد التسميات الأكثر استخداما (في حالة تصنيف) أو متوسط التسمية (في حالة العودة ).

في حالة تصنيف والانحدار، ونحن نرى أن اختيار K الصحيح للبيانات لدينا هو من خلال محاولة عدد قليل من K واختيار الأكثر فعالية واحدة لإكمال.

وأخيرا، رأينا مثالا على كيفية خوارزمية KNN أن يوصي النظام، وهو KNN البحث التطبيق.

KNN مثل ..... "دعني أرى صديقك، انا اقول لكم من هو."

ملحق

عن البساطة، وتنفيذ توصية فيلم KNN لا يتعامل مع الاستعلامات الفيلم قد يكون صحيحا حيث جزء من توصية مجموعة البيانات. في نظام الإنتاج قد يكون غير معقول، وينبغي أن تتعامل مع نفس المشكلة.

إذا كنت تعلم شيء جديد أو أحببت هذا المقال، يرجى تشاركه والثناء، والتي من شأنها أن تسمح للمزيد من الناس لنرى. أنت حر في ترك تعليقك.

أريد الاستمرار لعرضها المزيد من الرموز، وصلات والمراجع؟

رابط الطوابع:

AI Yanxishe تحديث المحتوى مثيرة يوميا، انقر على النص في نهاية لقراءة [الأصل] لمشاهدة المزيد من المحتوى: شبكة شبكة شبكة لى فنغ لى فنغ لى فنغ

الضمير نوصي بما يلي: 20 أسابيع دراسة ملصقات تجربة علوم الكمبيوتر (موارد المرفق)

كيفية بناء نموذج تنبؤي للتنبؤ يوم تلوث الهواء

كيف التدريب Keras، بيثون المتعددة القائمة على GPU، والتعلم العميق

في يوليو أفضل آلة التعلم جيثب مستودع وموضوع رديت

في انتظاركم لتفسير:

201825 جديرة بالملاحظة تعلم الآلة المبتدئة

آلة نموذج التعلم وراء التكنولوجيا الذكية الروبوت سريعة

الرياضة في الأماكن المغلقة خوارزمية تصنيف السلاسل الزمنية على أساس التعلم الآلي

لماذا AI الآن تعيين قبالة جنون؟

كيف NY ولندن PALACE جديد عرض أبهة مثل هذه الفجوة الكبيرة! كان التلاميذ التعاقد NY المشهد هو كيف يتم ذلك؟ !

"D الأولي" بعد لقاء 14 عاما! جاي شون ليو قنغ كونغ المربع نفسه

المجلد 22017 الكلية الوطنية امتحان القبول الفنون الامتحان الشامل

مجموعة الإضراب، مدمرة ماستر تدمير روتين مهمة

معرض شنغهاي للسيارات جاكوار لاند روفر رينج روفر تشكيلة ستار الأوردة لاول مرة المحلية

سفك الدماء تطبيق المثيرة، أصبحت الرعاية وأوتاكو "كارثة".

2017 حجم الوطنية 2 أسئلة امتحان دخول الجامعات

سوداء تشو يو ون شنغ 5 تشكيلة الفريق، ماذا تريد أن تموت

بكين الحديثة شنغهاي للسيارات تشكيلة الاسم الجديد الرسم / سوناتا، الخ

هاير الاخوة في كثير من الأحيان وراء أحدث إصدار من والعلامة الخاصة أوائل الخريف كتالوج "LastDays"

كلية امتحان القبول "غاز الأرض" لهذا العام، وذلك أساسا لاختبار ما؟

أنا ومراجعة الأقران متر كبار السن "تجربة رائعة التعارف