प्रौद्योगिकी साझेदारी

शेङ्गसी इत्यस्य २५ दिवसीयस्य शिक्षण-चेक-इन-शिबिरस्य २३ दिवसः |

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

एआइ शिक्षित्वा पुरस्कारं प्राप्तुं शक्नुवन्ति वा? प्रतिदिनं ३० मिनिट्, एआइ रेण्डु द्वितीय मेरिडियन (qq.com) उद्घाटयितुं २५ दिवसाः

K निकटतमपरिजनस्य एल्गोरिदम् रेड वाइनक्लस्टरिंग् कार्यान्वयति

अयं प्रयोगः मुख्यतया केषुचित् वाइन-दत्तांशसमूहेषु केएनएन-प्रयोगान् कर्तुं MindSpore-इत्यस्य उपयोगस्य परिचयं करोति ।

1. प्रयोगप्रयोजनम्

  • केएनएन इत्यस्य मूलभूतसंकल्पनाः अवगच्छन्तु;
  • MindSpore इत्यस्य उपयोगेन KNN प्रयोगाः कथं करणीयाः इति ज्ञातव्यम्।

2. K nearest neighbor algorithm इत्यस्य सिद्धान्तस्य परिचयः

K-Nearest-Neighbor (KNN) इति वर्गीकरणस्य प्रतिगमनस्य च गैर-पैरामीटरिकसांख्यिकीयपद्धतिः अस्ति, मूलतः १९६८ तमे वर्षे कवर-हार्टेन प्रस्ताविता (कवर एट अल., 1967 ), यन्त्रशिक्षणस्य मूलभूतानाम् अल्गोरिदम्-मध्ये अन्यतमम् अस्ति । उपर्युक्तविचारस्य आधारेण भवति यत् नमूनायाः श्रेणीं निर्धारयितुं भवान् सर्वेभ्यः प्रशिक्षणनमूनेभ्यः तस्य दूरं गणयितुं शक्नोति, ततः नमूनायाः समीपस्थं k नमूनानि अन्वेष्टुं शक्नोति, एतेषां नमूनानां श्रेणीं गणयितुं शक्नोति, तथा च The one with the most votes सः वर्गः वर्गीकरणस्य परिणामः अस्ति। केएनएन इत्यस्य त्रयः मूलभूततत्त्वानि : १.

  • K मूल्यं, नमूनायाः वर्गीकरणं K प्रतिवेशिनः "बहुमतमतेन" निर्धारितं भवति । K मूल्यं यथा लघु भवति तथा कोलाहलेन प्रभावितं भवितुं सुकरं भवति प्रत्युत श्रेणीनां सीमाः धुन्धलाः भविष्यन्ति ।

  • दूरमापः विशेषतास्थाने द्वयोः नमूनायोः साम्यं प्रतिबिम्बयति । सामान्यतया प्रयुक्तेषु Lp दूरी (यदा p=2 भवति तदा यूक्लिडियनदूरता भवति), Manhattan दूरी, Hamming दूरी इत्यादयः सन्ति ।

  • वर्गीकरणनिर्णयनियमाः, प्रायः बहुमतमतदानं, अथवा दूरभारस्य आधारेण बहुमतमतदानं (भाराः दूरस्य विपरीतरूपेण आनुपातिकाः भवन्ति) ।

अ-पैरामीटरिक-सांख्यिकीय-विधयः तान् सांख्यिकीय-विधयः निर्दिशन्ति ये पैरामीटरिक-रूपेषु (यथा पारम्परिक-सांख्यिकीयेषु सामान्य-वितरण-अनुमानम् इत्यादिषु) न अवलम्बन्ते, अर्थात् ते दत्तांश-वितरणस्य विषये कठोर-अनुमानं न कुर्वन्ति पैरामीटरिकसांख्यिकीयविधिभिः (यथा रेखीयप्रतिगमनम्, टी-परीक्षा इत्यादिभिः) तुलने, अ-पैरामीटरिकसांख्यिकीयविधयः अधिकं लचीलाः भवन्ति यतोहि ते न कल्पयन्ति यत् दत्तांशः विशिष्टवितरणप्रतिमानस्य अनुसरणं करोति

पैरामीटरिकसांख्यिकीयविधयः दत्तांशवितरणस्य विशिष्टानि धारणानि आवश्यकताश्च कर्तुं निर्भराः भवन्ति, तथा च दत्तांशस्य वितरणस्य आकारस्य वर्णनार्थं कतिपयानां मापदण्डानां उपयोगं कुर्वन्ति एते पैरामीटरिकरूपाः आदर्शान् विश्लेषणं च महत्त्वपूर्णतया सरलीकर्तुं शक्नुवन्ति, परन्तु तेषां कृते एतासां धारणानां मापदण्डानां च वास्तविकदत्तांशैः सह सङ्गतिः अपि आवश्यकी भवति, येन धारणानां पूर्तिः न भवति चेत् भ्रामकनिष्कर्षाः भवितुं शक्नुवन्ति
1. रेखीय प्रतिगमनम् : १.
धारणा : आश्रितचरस्य (प्रतिक्रियाचरस्य) स्वतन्त्रचरस्य (व्याख्यात्मकचरस्य) च रेखीयसम्बन्धः अस्ति ।
मापदण्डाः : प्रतिगमनगुणांकाः (प्रवणता तथा अवरोधः), सामान्यतया एतत् कल्पयित्वा यत् त्रुटिपदस्य शून्यं माध्यं, नित्यविचरणं (होमोस्केडास्टिसिटी), सामान्यवितरणं च भवति
2. लॉजिस्टिक रिग्रेशन : १.
धारणा: आश्रितः चरः (श्रेणीगतचरः) लॉजिस्टिकप्रतिगमनप्रतिरूपं सन्तुष्टं करोति, प्रतिगमनगुणकं च नियतमूल्यं भवति ।
पैरामीटर् : प्रतिगमनगुणकः, आश्रितचरानाम् उपरि स्वतन्त्रचरानाम् प्रभावस्य वर्णनार्थं प्रयुक्तः, अधिकतमसंभावनाअनुमानस्य माध्यमेन अनुमानितः
3. टी-परीक्षा : १.
धारणा : नमूनादत्तांशः सामान्यतया वितरितजनसंख्यातः आगच्छति ।
मापदण्डाः : औसतं विचरणं च, एकनमूना-टी-परीक्षा जनसंख्या-माध्यं गृह्णाति, द्वि-नमूना-टी-परीक्षा द्वयोः जनसंख्यायोः माध्ययोः मध्ये अन्तरं गृह्णाति

 

२.१ वर्गीकरणसमस्या

भविष्यवाणी एल्गोरिदमस्य (वर्गीकरणस्य) प्रक्रिया निम्नलिखितरूपेण अस्ति ।

(1) प्रशिक्षणनमूनासमूहे परीक्षणनमूना x_test इत्यस्य समीपस्थं k नमूनानि ज्ञात्वा N सेट् मध्ये रक्षन्तु;

(2)统计集合N中每一类样本的个数𝐶𝑖,𝑖=1,2,3,...,𝑐;

(3)最终的分类结果为argmax𝐶𝑖 (最大的对应的𝐶𝑖)那个类。

उपर्युक्ते कार्यान्वयनप्रक्रियायां k इत्यस्य मूल्यं विशेषतया महत्त्वपूर्णं भवति । समस्यायाः, दत्तांशलक्षणस्य च आधारेण निर्धारयितुं शक्यते । विशिष्टकार्यन्वयने नमूनायाः भारं विचारयितुं शक्यते, अर्थात् प्रत्येकस्य नमूनायाः भिन्नः मतदानभारः भवति एषा पद्धतिः भारित-समीपस्थ-परिजन-अल्गोरिदम् इति कथ्यते, यत् k-समीपस्थ-परिजन-अल्गोरिदम्-इत्यस्य एकः प्रकारः अस्ति

२.२ प्रतिगमनसमस्या

假设离测试样本最近的k个训练样本的标签值为𝑦𝑖,则对样本的回归预测输出值为:

सः सर्वेषां प्रतिवेशिनां मध्यमं लेबलमूल्यं भवति ।

नमूनाभारयुक्तं प्रतिगमनपूर्वसूचनाकार्यं भवति :

其中𝑤𝑖为第个𝑖样本的权重。

२.३ दूरस्य परिभाषा

KNN算法的实现依赖于样本之间的距离,其中最常用的距离函数就是欧氏距离(欧几里得距离)。ℝ𝑛空间中的两点𝑥和𝑦,它们之间的欧氏距离定义为:

ज्ञातव्यं यत् यूक्लिडियन-अन्तरस्य उपयोगं कुर्वन् विशेषता-मूल्यानां भिन्न-भिन्न-स्केल-परिधिभिः उत्पद्यमानं हस्तक्षेपं न्यूनीकर्तुं विशेषता-सदिशस्य प्रत्येकं घटकं सामान्यीकृतं कर्तव्यम् अन्यथा लघु-मूल्यानां विशेषता-घटकानाम् स्थाने बृहत्-युक्तैः विशेषताभिः स्थाप्यते मूल्यानि लक्षणीयघटकाः डुबन्ति।

अन्येषु दूरगणनाविधिषु महालनोबिसदूरता, भट्टाचार्यदूरता इत्यादयः सन्ति ।

3. प्रयोगात्मकं वातावरणम्

प्रारम्भिक ज्ञान : १.

  • पायथन् इत्यस्य उपयोगे प्रवीणः।
  • यन्त्रशिक्षणसिद्धान्तस्य निश्चितं ज्ञानं भवतु, यथा केएनएन, अनिरीक्षितशिक्षणं, यूक्लिडियनदूरता इत्यादयः।

प्रयोगशाला वातावरणम् : १.

  • MindSpore 2.0 (MindSpore संस्करणं नियमितरूपेण अद्यतनं भविष्यति, तथा च संस्करणेन सह मेलयितुम् इदं मार्गदर्शकं नियमितरूपेण अपि ताजगीकृतं भविष्यति);
  • एषः प्रकरणः win_x86 तथा Linux प्रणालीनां समर्थनं करोति, तथा च CPU/GPU/Ascend इत्यत्र चालयितुं शक्नोति ।
  • यदि भवान् एतत् प्रयोगं स्थानीयरूपेण चालयति तर्हि कृपया MindSpore स्थानीयरूपेण संस्थापयितुं "MindSpore Environment Setup Experiment Manual" पश्यन्तु ।

4. दत्तांशसंसाधनम्

४.१ दत्तांशसज्जीकरणम्

वाइन-दत्तांशसमूहः प्रतिमान-परिचयार्थं प्रसिद्धेषु आँकडा-समूहेषु अन्यतमः अस्ति Wine-दत्तांशसमूहस्य आधिकारिकजालस्थलम् :वाइन डाटा सेट् . इटलीदेशस्य एकस्यैव प्रदेशस्य परन्तु त्रयाणां भिन्नप्रकारस्य मद्यस्य रासायनिकविश्लेषणस्य परिणामः अयं दत्तांशः अस्ति । दत्तांशसमूहः त्रयाणां मद्यस्य प्रत्येकस्मिन् निहितानाम् १३ अवयवानां परिमाणानां विश्लेषणं करोति ।एते १३ गुणाः सन्ति

  1. मद्यसार
  2. मलिक अम्ल, मैलिक अम्ल
  3. भस्म, धूसर
  4. भस्मस्य क्षारीयता, भस्मस्य क्षारीयता
  5. मैग्नीशियमः
  6. कुल फिनोल, कुल फिनोल
  7. फ्लेवनोइड्स, फ्लेवोनोइड्स
  8. अफ्लेवनोइड फिनोल, अफ्लेवनोइड फिनोल
  9. प्रोएन्थोसायनिन्, प्रोएन्थोसायनिडिन
  10. वर्ण तीव्रता, वर्ण तीव्रता
  11. हुए
  12. पतला मद्यस्य OD280/OD315, पतला मद्यस्य OD280/OD315
  13. प्रोलिन्, प्रोलिन्
  • विधिः १, Wine dataset आधिकारिकजालस्थलात् डाउनलोड् कुर्वन्तुwine.data सञ्चिका
  • विधिः २, Huawei Cloud OBS इत्यस्मात् डाउनलोड् कुर्वन्तुwine.data सञ्चिका
कुंजीमूल्यम्‌कुंजीमूल्यम्‌
दत्तांशसमूहस्य लक्षणम् : १.बहुचरउदाहरणानां संख्या : १.178
विशेषता लक्षणम् : १.पूर्णाङ्कः, वास्तविकःविशेषतानां संख्या : १.13
सम्बद्धानि कार्याणि : १.वर्गीकरणमूल्यानि लुप्ताः ?नहि
  1. %%capture captured_output
  2. # 实验环境已经预装了mindspore==2.2.14,如需更换mindspore版本,可更改下面mindspore的版本号
  3. !pip uninstall mindspore -y
  4. !pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore==2.2.14
  1. # 查看当前 mindspore 版本
  2. !pip show mindspore
Name: mindspore
Version: 2.2.14
Summary: MindSpore is a new open source deep learning training/inference framework that could be used for mobile, edge and cloud scenarios.
Home-page: https://www.mindspore.cn
Author: The MindSpore Authors
Author-email: [email protected]
License: Apache 2.0
Location: /home/nginx/miniconda/envs/jupyter/lib/python3.9/site-packages
Requires: asttokens, astunparse, numpy, packaging, pillow, protobuf, psutil, scipy
Required-by: 
  1. from download import download
  2. # 下载红酒数据集
  3. url = "https://ascend-professional-construction-dataset.obs.cn-north-4.myhuaweicloud.com:443/MachineLearning/wine.zip"
  4. path = download(url, "./", kind="zip", replace=True)
Downloading data from https://ascend-professional-construction-dataset.obs.cn-north-4.myhuaweicloud.com:443/MachineLearning/wine.zip (4 kB)

file_sizes: 100%|██████████████████████████| 4.09k/4.09k [00:00<00:00, 2.51MB/s]
Extracting zip file...
Successfully downloaded / unzipped to ./

४.२ दत्तांशपठनं संसाधनं च

MindSpore मॉड्यूल तथा सहायक मॉड्यूल आयात करें

दत्तांशं जनयितुं पूर्वं आवश्यकानि पायथन् पुस्तकालयाः आयातयन्तु ।

os पुस्तकालयस्य उपयोगः सम्प्रति भवति अवगमनस्य सुविधायै वयं अन्ये आवश्यकाः पुस्तकालयाः यदा विशेषरूपेण उपयुज्यन्ते तदा व्याख्यास्यामः ।

विस्तृतं MindSpore मॉड्यूलविवरणं MindSpore API पृष्ठे अन्वेष्टुं शक्यते ।

भवान् context.set_context इत्यस्य माध्यमेन संचालनाय आवश्यकं सूचनां विन्यस्तुं शक्नोति, यथा संचालनविधिः, पृष्ठभागसूचना, हार्डवेयर इत्यादीनि सूचनाः ।

सन्दर्भमॉड्यूल् आयात्य संचालनाय आवश्यकी सूचना विन्यस्यताम् ।

  1. %matplotlib inline
  2. import os
  3. import csv
  4. import numpy as np
  5. import matplotlib.pyplot as plt
  6. import mindspore as ms
  7. from mindspore import nn, ops
  8. ms.set_context(device_target="CPU")
refer tomindspore.set_context ,यन्त्र_लक्ष्यम् (str) - 'Ascend', 'GPU' तथा 'CPU' इत्येतयोः समर्थनं कृत्वा चालनीयं लक्ष्ययन्त्रं प्रतिनिधियति । यदि एषः पैरामीटर् सेट् न भवति तर्हि MindSpore संकुलस्य अनुरूपं पृष्ठभागयन्त्रं उपयुज्यते । एतत् प्रयोगात्मकवातावरणे Ascend इति अपि सेट् कर्तुं शक्यते ।

Wine dataset पठन्तुwine.data, तथा केचन दत्तांशाः पश्यन्तु।
  1. with open('wine.data') as csv_file:
  2. data = list(csv.reader(csv_file, delimiter=','))
  3. print(data[56:62]+data[130:133])
[['1', '14.22', '1.7', '2.3', '16.3', '118', '3.2', '3', '.26', '2.03', '6.38', '.94', '3.31', '970'], ['1', '13.29', '1.97', '2.68', '16.8', '102', '3', '3.23', '.31', '1.66', '6', '1.07', '2.84', '1270'], ['1', '13.72', '1.43', '2.5', '16.7', '108', '3.4', '3.67', '.19', '2.04', '6.8', '.89', '2.87', '1285'], ['2', '12.37', '.94', '1.36', '10.6', '88', '1.98', '.57', '.28', '.42', '1.95', '1.05', '1.82', '520'], ['2', '12.33', '1.1', '2.28', '16', '101', '2.05', '1.09', '.63', '.41', '3.27', '1.25', '1.67', '680'], ['2', '12.64', '1.36', '2.02', '16.8', '100', '2.02', '1.41', '.53', '.62', '5.75', '.98', '1.59', '450'], ['3', '12.86', '1.35', '2.32', '18', '122', '1.51', '1.25', '.21', '.94', '4.1', '.76', '1.29', '630'], ['3', '12.88', '2.99', '2.4', '20', '104', '1.3', '1.22', '.24', '.83', '5.4', '.74', '1.42', '530'], ['3', '12.81', '2.31', '2.4', '24', '98', '1.15', '1.09', '.27', '.83', '5.7', '.66', '1.36', '560']]
取三类样本(共178条),将数据集的13个属性作为自变量𝑋。将数据集的3个类别作为因变量𝑌。
  1. X = np.array([[float(x) for x in s[1:]] for s in data[:178]], np.float32)
  2. Y = np.array([s[0] for s in data[:178]], np.int32)
2-आयामी दृश्यीकरणाय नमूनायाः द्वौ विशेषणौ गृह्यताम्, ततः भवन्तः द्वयोः विशेषतायोः उपरि नमूनायाः वितरणं पृथक्त्वं च द्रष्टुं शक्नुवन्ति ।
  1. attrs = ['Alcohol', 'Malic acid', 'Ash', 'Alcalinity of ash', 'Magnesium', 'Total phenols',
  2. 'Flavanoids', 'Nonflavanoid phenols', 'Proanthocyanins', 'Color intensity', 'Hue',
  3. 'OD280/OD315 of diluted wines', 'Proline']
  4. plt.figure(figsize=(10, 8))
  5. for i in range(0, 4):
  6. plt.subplot(2, 2, i+1)
  7. a1, a2 = 2 * i, 2 * i + 1
  8. plt.scatter(X[:59, a1], X[:59, a2], label='1')
  9. plt.scatter(X[59:130, a1], X[59:130, a2], label='2')
  10. plt.scatter(X[130:, a1], X[130:, a2], label='3')
  11. plt.xlabel(attrs[a1])
  12. plt.ylabel(attrs[a2])
  13. plt.legend()
  14. plt.show()

संहितातः अनुमानितम् अस्ति यत् प्रथमाः ५९ नमूनाः १ वर्गस्य, ५९ तः १३० पर्यन्तं २ श्रेणीयाः, शेषाः नमूनाः ३ वर्गस्य भवितुम् अर्हन्ति

चित्रात्मकप्रदर्शनात्, आलेखस्य उपरि वामकोणे अधः दक्षिणकोणे च द्वौ विशेषतावर्गीकरणप्रभावौ तुल्यकालिकरूपेण उत्तमौ स्तः, विशेषतः १ तथा २ श्रेणीयोः मध्ये सीमाः तुल्यकालिकरूपेण स्पष्टाः सन्ति

दत्तांशसमूहः प्रशिक्षणसमूहे (ज्ञातवर्गस्य नमूनानि) तथा प्रमाणीकरणसमूहे (सत्यापनीयानि नमूनानि) १२८:५० वादने विभक्तः अस्ति:
  1. train_idx = np.random.choice(178, 128, replace=False)
  2. test_idx = np.array(list(set(range(178)) - set(train_idx)))
  3. X_train, Y_train = X[train_idx], Y[train_idx]
  4. X_test, Y_test = X[test_idx], Y[test_idx]

分解test_idx = np.array (सूची (सेट (रेंज (178)) - सेट (ट्रेन_idx)))
1. range(178) 0 तः 177 पर्यन्तं पूर्णाङ्कानां क्रमं जनयति ।
2. set(range(178)) इत्यनेन पूर्णाङ्कानां एतत् क्रमं सेट् मध्ये परिवर्तयति । समुच्चयः एकः दत्तांशसंरचना अस्ति यः पुनरावृत्तितत्त्वानां अनुमतिं न ददाति तथा च कुशलसमूहक्रियाणां (यथा संघः, प्रतिच्छेदनं, भेदः इत्यादयः) समर्थयति ।
3. set(train_idx) यादृच्छिकरूपेण चयनितं प्रशिक्षणसमूहसूचकाङ्कसूचीं train_idx एकस्मिन् सेट् मध्ये परिवर्तयति ।
4. set(range(178)) - set(train_idx) setस्य difference set operation गणयति तथा च तान् तत्त्वान् प्राप्नोति ये set(range(178)) मध्ये सन्ति परन्तु set(train_idx) मध्ये न सन्ति, ये the test set. इदं एकं सेट् ऑपरेशनं यत् शीघ्रं कुशलतया च भेदतत्त्वानां गणनां कर्तुं शक्नोति ।
5. list(...) इत्यनेन भेदक्रियायाः परिणामं पुनः सूचीयां परिवर्तयति ।
6. np.array(...) इत्येतत् सूचीं numpy array X तथा Y इत्यनेन सह indexing कृते numpy array इत्यत्र परिवर्तयति

 

5. आदर्शनिर्माणम्--अन्तरस्य गणनां कुर्वन्तु

MindSpore यत् प्रदाति तस्य लाभं गृहाणtile, square, ReduceSum, sqrt, TopKतथा अन्ये संचालकाः, एकत्रितरूपेण इनपुटनमूना x अन्येषां स्पष्टतया वर्गीकृतनमूनानां X_train इत्येतयोः मध्ये दूरीं मैट्रिक्ससञ्चालनानां माध्यमेन गणयन्ति, तथा च शीर्ष k निकटतमपरिजनस्य गणनां कुर्वन्ति

  1. class KnnNet(nn.Cell):
  2. def __init__(self, k):
  3. super(KnnNet, self).__init__()
  4. self.k = k
  5. def construct(self, x, X_train):
  6. #平铺输入x以匹配X_train中的样本数
  7. x_tile = ops.tile(x, (128, 1))
  8. square_diff = ops.square(x_tile - X_train)
  9. square_dist = ops.sum(square_diff, 1)
  10. dist = ops.sqrt(square_dist)
  11. #-dist表示值越大,样本就越接近
  12. values, indices = ops.topk(-dist, self.k)
  13. return indices
  14. def knn(knn_net, x, X_train, Y_train):
  15. x, X_train = ms.Tensor(x), ms.Tensor(X_train)
  16. indices = knn_net(x, X_train)
  17. topk_cls = [0]*len(indices.asnumpy())
  18. for idx in indices.asnumpy():
  19. topk_cls[Y_train[idx]] += 1
  20. cls = np.argmax(topk_cls)
  21. return cls

1. KNN संजालवर्गं परिभाषयन्तु: KnnNet
__init__ function: संजालस्य आरम्भं कृत्वा K मूल्यं (अर्थात् चयनितस्य समीपस्थपरिजनस्य संख्या) सेट् कुर्वन्तु ।
construct function: प्रशिक्षणसमूहे X_train इत्यस्मिन् इनपुट् नमूना x इत्यस्य प्रत्येकस्य नमूनायाः च मध्ये यूक्लिडियन-अन्तरस्य गणनां कुर्वन्तु, तथा च k (अर्थात् निकटतम-परिजनस्य) नमूनानां सूचकाङ्कं लघुतम-दूरेण सह प्रत्यागच्छन्तु
2. KNN फंक्शन् परिभाषयन्तु: knn
knn_net (KNN संजालदृष्टान्त), परीक्षणनमूना x, प्रशिक्षणनमूना X_train तथा प्रशिक्षणलेबल Y_train इनपुटरूपेण प्राप्नोति ।
x इत्यस्य k निकटतमपरिजननमूनानि अन्वेष्टुं, एतेषां नमूनानां लेबलानुसारं वर्गीकृत्य, वर्गीकरणपरिणामं (अर्थात्, पूर्वानुमानितवर्गः) प्रत्यागन्तुं knn_net इत्यस्य उपयोगं कुर्वन्तु

 

6. आदर्श भविष्यवाणी

在验证集上验证KNN算法的有效性,取𝑘=5,验证精度接近80%,说明KNN算法在该3分类任务上有效,能根据酒的13种属性判断出酒的品种。

  1. acc = 0
  2. knn_net = KnnNet(5)
  3. for x, y in zip(X_test, Y_test):
  4. pred = knn(knn_net, x, X_train, Y_train)
  5. acc += (pred == y)
  6. print('label: %d, prediction: %s' % (y, pred))
  7. print('Validation accuracy is %f' % (acc/len(Y_test)))

परीक्षणसमूहस्य सटीकता गणनां कृत्वा मुद्रयन्तु
परीक्षणसमूहे X_test तथा ​​Y_test इत्यस्मिन् प्रत्येकं नमूनायाः माध्यमेन लूप् कुर्वन्तु, तथा च प्रत्येकं नमूनानां वर्गीकरणार्थं knn फंक्शन् इत्यस्य उपयोगं कुर्वन्तु ।
सांख्यिकी समीचीननमूनानां संख्यायाः पूर्वानुमानं करोति, वर्गीकरणस्य सटीकतायां गणनां करोति, निर्गच्छति च ।

label: 1, prediction: 1
label: 2, prediction: 3
label: 1, prediction: 1
label: 1, prediction: 1
label: 3, prediction: 2
label: 1, prediction: 1
label: 1, prediction: 1
label: 3, prediction: 3
label: 1, prediction: 1
label: 1, prediction: 1
label: 1, prediction: 1
label: 1, prediction: 1
label: 3, prediction: 2
label: 1, prediction: 2
label: 1, prediction: 1
label: 1, prediction: 1
label: 3, prediction: 2
label: 1, prediction: 1
label: 1, prediction: 1
label: 3, prediction: 3
label: 3, prediction: 1
label: 3, prediction: 2
label: 3, prediction: 2
label: 1, prediction: 1
label: 1, prediction: 1
label: 3, prediction: 2
label: 1, prediction: 3
label: 3, prediction: 1
label: 3, prediction: 3
label: 3, prediction: 1
label: 3, prediction: 1
label: 1, prediction: 1
label: 1, prediction: 1
label: 1, prediction: 1
label: 1, prediction: 1
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 3
label: 2, prediction: 3
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 1
label: 2, prediction: 3
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 2
Validation accuracy is 0.660000

प्रतिवारं ८०% प्राप्तुं न शक्यते बहुवारं प्रयत्नस्य अनन्तरं सटीकता अन्ततः ८०% यावत् अभवत् ।

label: 1, prediction: 1
label: 3, prediction: 3
label: 1, prediction: 1
label: 1, prediction: 1
label: 3, prediction: 3
label: 3, prediction: 3
label: 3, prediction: 2
label: 3, prediction: 3
label: 1, prediction: 1
label: 3, prediction: 3
label: 1, prediction: 1
label: 1, prediction: 3
label: 3, prediction: 3
label: 1, prediction: 3
label: 1, prediction: 1
label: 3, prediction: 3
label: 1, prediction: 1
label: 1, prediction: 1
label: 3, prediction: 3
label: 3, prediction: 3
label: 3, prediction: 2
label: 1, prediction: 1
label: 3, prediction: 3
label: 1, prediction: 1
label: 3, prediction: 3
label: 1, prediction: 1
label: 1, prediction: 1
label: 1, prediction: 1
label: 1, prediction: 1
label: 1, prediction: 1
label: 1, prediction: 1
label: 1, prediction: 1
label: 2, prediction: 3
label: 2, prediction: 1
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 3
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 3
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 2
label: 2, prediction: 3
label: 2, prediction: 2
Validation accuracy is 0.820000

प्रयोगसारांशः

अस्मिन् प्रयोगे 3-वर्गीकरणसमस्यायाः समाधानार्थं KNN एल्गोरिदम् कार्यान्वितुं MindSpore इत्यस्य उपयोगः भवति । मद्यदत्तांशसमूहे ३ प्रकारस्य नमूनानि गृहीत्वा सत्यापनीयानां ज्ञातवर्गनमूनानां नमूनानां च विभाजनं कुर्वन्तु सत्यापनपरिणामात् वयं द्रष्टुं शक्नुमः यत् केएनएन एल्गोरिदम् अस्मिन् कार्ये प्रभावी अस्ति तथा च आधारेण मद्यस्य विविधतां निर्धारयितुं शक्नोति १३ मद्यस्य गुणाः ।

आँकडा-निर्माणम् : Wine dataset official website अथवा Huawei Cloud OBS तः data डाउनलोड् कृत्वा पठित्वा तत् संसाधयन्तु।

आँकडासंसाधनम् : दत्तांशसमूहं स्वतन्त्रचरयोः (१३ विशेषताः) आश्रितचरयोः (३ श्रेणयः) च विभज्य, नमूनावितरणस्य अवलोकनार्थं तान् दृश्यमानं कुर्वन्तु

मॉडल निर्माणम् : KNN संजालसंरचना परिभाषयन्तु, MindSpore द्वारा प्रदत्तस्य ऑपरेटरस्य उपयोगं कृत्वा इनपुट् नमूनायाः प्रशिक्षणनमूनायाश्च मध्ये दूरी गणनां कुर्वन्तु, तथा च समीपस्थं k प्रतिवेशिनः अन्वेष्टुम्।

आदर्श भविष्यवाणी : सत्यापनसमूहे भविष्यवाणीं कुर्वन्तु भविष्यवाणीसटीकतायाः गणनां कुर्वन्तु।

प्रयोगात्मकपरिणामेषु ज्ञायते यत् Wine आँकडासमूहे KNN एल्गोरिदमस्य वर्गीकरणसटीकता ८०% (६६%) समीपे अस्ति ।