د ملاتړ ویکتور ماشینونه (SVM) د نظارت شوي ماشین زده کړې الګوریتمونو ځواکمن او هر اړخیز ټولګي دي په ځانګړي توګه د طبقه بندي کارونو لپاره مؤثره. کتابتونونه لکه سکیټ لیرن په Python کې د SVM قوي پلي کول چمتو کوي، دا د متخصصینو او څیړونکو لپاره د لاسرسي وړ ګرځوي. دا ځواب به روښانه کړي چې څنګه د SVM طبقه بندي پلي کولو لپاره د سکیکټ زده کړې کارول کیدی شي، د کلیدي دندو توضیح کول او د مثالونو مثالونه وړاندې کول.
د SVM پیژندنه
د ملاتړ ویکتور ماشینونه د هایپرپلین په موندلو سره کار کوي چې ډیټا په مختلف ټولګیو کې په غوره توګه جلا کوي. په دوه اړخیزه فضا کې، دا هایپرپلین یوازې یوه کرښه ده، مګر په لوړو ابعادو کې، دا په الوتکه یا هایپرپلین بدلیږي. غوره هایپرپلین هغه دی چې د دوه ټولګیو تر مینځ حاشیه اعظمي کوي ، چیرې چې حاشیه د هایپرپلین او د هر ټولګي څخه نږدې ډیټا پوائنټونو ترمینځ فاصله په توګه تعریف شوې ، چې د ملاتړ ویکتورونو په نوم پیژندل کیږي.
سکیټ زده کړه او SVM
Scikit-learn د ماشین زده کړې لپاره د Python یو پیاوړی کتابتون دی چې د ډیټا کان کیندنې او ډیټا تحلیل لپاره ساده او اغیزمن وسیلې چمتو کوي. دا په NumPy، SciPy، او matplotlib کې جوړ شوی. د scikit-learn دننه د `svm` ماډل د SVM الګوریتم پلي کول چمتو کوي.
کلیدي دندې
1. `svm.SVC`: دا د SVM په کارولو سره د ډلبندۍ ترسره کولو لپاره اصلي ټولګي ده. SVC د ملاتړ ویکتور طبقه بندي لپاره ولاړ دی.
2. 'فټ': دا طریقه د ورکړل شوي معلوماتو په اړه د ماډل روزلو لپاره کارول کیږي.
3. وړاندوینه: یوځل چې ماډل وروزل شي، دا طریقه د ورکړل شوي ازموینې ډیټا لپاره د ټولګي لیبلونو وړاندوینې لپاره کارول کیږي.
4. نمرې: دا طریقه د ازموینې ډاټا کې د ماډل دقت ارزولو لپاره کارول کیږي.
5. `GridSearchCV`: دا د SVM ماډل لپاره غوره پیرامیټرې موندلو لپاره د هایپرپرامیټر ټونینګ لپاره کارول کیږي.
د سکیکټ زده کړې سره د SVM طبقه بندي پلي کول
راځئ چې د scikit-learn په کارولو سره د SVM طبقه بندي پلي کولو کې دخیل ګامونه په پام کې ونیسو.
1 ګام: د کتابتونونو واردول
لومړی، اړین کتابتونونه وارد کړئ:
{{EJS9}}2 ګام: د ډیټا سیټ بار کول
د ښودلو موخو لپاره، موږ به د Iris ډیټاسیټ وکاروو، د ماشین زده کړې ټولنه کې یو مشهور ډیټاسیټ:{{EJS10}}3 ګام: د ډیټاسیټ ویشل
ډیټاسیټ د روزنې او ازموینې سیټونو کې تقسیم کړئ:{{EJS11}}4 ګام: د ځانګړتیا اندازه کول
د فیچر اندازه کول د SVM لپاره مهم دي ځکه چې دا د ان پټ ځانګړتیاو پیمانه حساس دی:{{EJS12}}5 ګام: د SVM ماډل روزنه
د SVM طبقه بندي انسټاګرام کړئ او د روزنې معلوماتو کې یې روزنه ورکړئ:python # Create an instance of SVC and fit the data svc = SVC(kernel='linear', C=1.0) svc.fit(X_train, y_train)دلته، موږ یو خطي کرنل وکاروو او د منظم کولو پیرامیټر C` 1.0 ته وټاکو. د کرنل پیرامیټر د هایپرپلین ډول مشخص کوي چې د معلوماتو جلا کولو لپاره کارول کیږي. په عامو کرنلونو کې 'لینیر'، 'پولی' (پولینومیل)، 'rbf' (ریډیل اساس فعالیت)، او 'sigmoid' شامل دي.
6 ګام: وړاندوینې کول
د ټیسټ ډیټا په اړه وړاندوینې کولو لپاره روزل شوي ماډل وکاروئ:
{{EJS14}}شپږم ګام: د ماډل ارزونه
د میټریکونو په کارولو سره د ماډل فعالیت ارزونه لکه د مغشوش میټرکس او طبقه بندي راپور:python # Evaluate the model print(confusion_matrix(y_test, y_pred)) print(classification_report(y_test, y_pred))د مغشوش میټرکس د وړاندوینې پایلو لنډیز وړاندې کوي، پداسې حال کې چې د ډلبندۍ راپور د هر ټولګي لپاره دقیقیت، یادول، F1 سکور، او ملاتړ شامل دي.
د GridSearchCV سره Hyperparameter Tuning
د SVM ماډل فعالیت غوره کولو لپاره د هایپرپرامیټر ټوننګ اړین دی. د Scikit-learn 'GridSearchCV' د ټاکل شوي پیرامیټر گرډ په اړه د بشپړ لټون ترسره کولو لپاره کارول کیدی شي:
python from sklearn.model_selection import GridSearchCV # Define the parameter grid param_grid = { 'C': [0.1, 1, 10, 100], 'gamma': [1, 0.1, 0.01, 0.001], 'kernel': ['rbf'] } # Create a GridSearchCV instance grid = GridSearchCV(SVC(), param_grid, refit=True, verbose=2) grid.fit(X_train, y_train) # Print the best parameters and the corresponding score print("Best parameters found: ", grid.best_params_) print("Best score: ", grid.best_score_) # Use the best estimator to make predictions grid_predictions = grid.predict(X_test) # Evaluate the model with the best parameters print(confusion_matrix(y_test, grid_predictions)) print(classification_report(y_test, grid_predictions))په دې مثال کې، موږ د RBF کرنل په کارولو سره د `C` او `gamma` لپاره د ارزښتونو په یوه شبکه کې پلټنه وکړه. د 'GridSearchCV' مثال د لټون په جریان کې موندل شوي غوره پیرامیټرو سره ماډل بدلوي.
د تصمیم سرحد لیدل
د دې لپاره چې د SVM طبقه بندي څنګه کار کوي د ښه پوهیدو لپاره، دا ډیری وختونه د پریکړې حد لیدلو لپاره ګټور دی. دا په دوه اړخیز فیچر ځای کې ډیر مستقیم دی. لاندې د مصنوعي ډیټاسیټ کارولو مثال دی:
python from sklearn.datasets import make_blobs # Generate a synthetic dataset X, y = make_blobs(n_samples=100, centers=2, random_state=6) # Fit the SVM model svc = SVC(kernel='linear', C=1.0) svc.fit(X, y) # Create a mesh to plot the decision boundary h = .02 x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) # Predict the class for each point in the mesh Z = svc.predict(np.c_[xx.ravel(), yy.ravel()]) Z = Z.reshape(xx.shape) # Plot the decision boundary plt.contourf(xx, yy, Z, alpha=0.8) plt.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k', marker='o') plt.xlabel('Feature 1') plt.ylabel('Feature 2') plt.title('SVM Decision Boundary') plt.show()پورتني کوډ د دوه ټولګیو سره یو مصنوعي ډیټاسیټ رامینځته کوي ، د SVM ماډل سره د خطي کرنل سره فټ کوي ، او د پریکړې حد لیدوي. د 'contourf' فنکشن د پریکړې حد ته د پلاټ کولو لپاره کارول کیږي، او د سکریټر پلاټ د معلوماتو ټکي ښیي. سکیکیټ زده کړه په Python کې د SVM طبقه بندي پلي کولو لپاره جامع او د کاروونکي دوستانه انٹرفیس چمتو کوي. کلیدي دندې لکه `svm.SVC`، `fit`، `predict`، او `score` د SVM ماډلونو د جوړولو او ارزولو لپاره اړین دي. د `GridSearchCV` سره د هایپرپرامیټر ټوننګ د غوره پیرامیټونو په موندلو سره د ماډل فعالیت نور هم زیاتوي. د پریکړې حد لیدل کولی شي د ډلبندۍ چلند کې ارزښتناکه لید وړاندې کړي. د دې ګامونو په تعقیب، یو څوک کولی شي په اغیزمنه توګه د SVM طبقه بندي پلي کړي او د سکیکټ زده کړې په کارولو سره غوره کړي.
په اړه نورې وروستۍ پوښتنې او ځوابونه د پیتان سره د EITC/AI/MLP ماشین زده کړه:
- په خطي ریګریشن کې د b پیرامیټر څنګه محاسبه کیږي (د غوره مناسب لاین y-مداخله)؟
- مالتړ ویکتورونه د SVM د پریکړې حد په ټاکلو کې څه رول لوبوي، او د روزنې پروسې په جریان کې دوی څنګه پیژندل کیږي؟
- د SVM اصلاح کولو په شرایطو کې، د وزن ویکتور 'w' او تعصب 'b' اهمیت څه دی، او دوی څنګه ټاکل کیږي؟
- د SVM پلي کولو کې د `visualize` میتود هدف څه دی، او دا څنګه د ماډل فعالیت په پوهیدو کې مرسته کوي؟
- د SVM پلي کولو کې د وړاندوینې میتود څنګه د نوي ډیټا نقطې طبقه بندي ټاکي؟
- د ماشین زده کړې په شرایطو کې د ملاتړ ویکتور ماشین (SVM) لومړنۍ موخه څه ده؟
- د محدودیت اهمیت تشریح کړئ (y_i (mathbf{x}_i cdot mathbf{w} + b) geq 1) په SVM اصلاح کې.
- د SVM اصلاح کولو ستونزې هدف څه دی او دا څنګه په ریاضي ډول جوړ شوی؟
- په SVM کې د ټاکل شوي فیچر طبقه بندي څنګه د پریکړې فنکشن په نښه پورې اړه لري (متن{sign}(mathbf{x}_i cdot mathbf{w} + b))؟
- د سپورټ ویکتور ماشینونو (SVM) په شرایطو کې د هایپرپلین مساوات (mathbf{x} cdot mathbf{w} + b = 0) رول څه دی؟
نورې پوښتنې او ځوابونه په EITC/AI/MLP ماشین زده کړه کې د Python سره وګورئ