ডেটাসেট বিভক্ত করার জন্য উপযুক্ত কৌশল কী?
আমি নিম্নলিখিত পদ্ধতির উপর প্রতিক্রিয়া জন্য অনুরোধ (যেমন পৃথক পরামিতি না test_size
বা n_iter
, কিন্তু যদি আমি ব্যবহৃত X
, y
, X_train
, y_train
, X_test
, এবং y_test
উপযুক্তভাবে এবং ক্রম ইন্দ্রিয় তোলে থাকেন):
( এই উদাহরণটি সাইকিট-লার্ন ডকুমেন্টেশন থেকে বাড়ানো )
1. ডেটাसेट লোড করুন
from sklearn.datasets import load_digits
digits = load_digits()
X, y = digits.data, digits.target
2. প্রশিক্ষণ এবং পরীক্ষার সেটে বিভক্ত করুন (উদাহরণস্বরূপ, 80/20)
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
৩. অনুমানকারী চয়ন করুন
from sklearn.svm import SVC
estimator = SVC(kernel='linear')
4. ক্রস-বৈধতা পুনরুদ্ধারকারী চয়ন করুন
from sklearn.cross_validation import ShuffleSplit
cv = ShuffleSplit(X_train.shape[0], n_iter=10, test_size=0.2, random_state=0)
৫. হাইপারপ্রেটারি টিউন করুন
প্রশিক্ষণ সেটে ক্রস-বৈধতা পুনরুদ্ধারকারী প্রয়োগ করা
from sklearn.grid_search import GridSearchCV
import numpy as np
gammas = np.logspace(-6, -1, 10)
classifier = GridSearchCV(estimator=estimator, cv=cv, param_grid=dict(gamma=gammas))
classifier.fit(X_train, y_train)
6. শেখার বক্ররেখার সাথে ডিবাগ অ্যালগরিদম
X_train
এলোমেলোভাবে একটি প্রশিক্ষণ এবং একটি পরীক্ষায় 10 বার ( n_iter=10
) বিভক্ত হয় । প্রশিক্ষণ-স্কোর বক্ররেখা প্রতিটি বিন্দু 10 স্কোর যেখানে মডেল প্রশিক্ষণ ও প্রথম মূল্যায়ন ছিল গড় আমি প্রশিক্ষণ উদাহরণ। ক্রস-বৈধতা স্কোর বক্ররেখার প্রতিটি পয়েন্ট হল 10 স্কোরের গড় যেখানে মডেলটি প্রথম i প্রশিক্ষণ উদাহরণগুলিতে প্রশিক্ষিত হয়েছিল এবং পরীক্ষার সেটটির সমস্ত উদাহরণের উপর মূল্যায়ন করেছিল।
from sklearn.learning_curve import learning_curve
title = 'Learning Curves (SVM, linear kernel, $\gamma=%.6f$)' %classifier.best_estimator_.gamma
estimator = SVC(kernel='linear', gamma=classifier.best_estimator_.gamma)
plot_learning_curve(estimator, title, X_train, y_train, cv=cv)
plt.show()
প্লট_ইলর্নিং_কুর্ভ () সাইকিট-লার (0.15-গিট) এর বর্তমান দেব সংস্করণে পাওয়া যাবে।
The. পরীক্ষার সেটটিতে চূড়ান্ত মূল্যায়ন
classifier.score(X_test, y_test)
7a। নেস্টেড ক্রস-বৈধকরণ (পুরো ডেটাসেট ব্যবহার করে) দিয়ে মডেল নির্বাচনের ওভার-ফিটিং পরীক্ষা করুন
from sklearn.cross_validation import cross_val_score
cross_val_score(classifier, X, y)
অতিরিক্ত প্রশ্ন: নেস্টেড ক্রস-বৈধতা দ্বারা 7 ধাপটি প্রতিস্থাপন করা কি বোধগম্য? বা নেস্টেড সিভিকে step ম ধাপের পরিপূরক হিসাবে দেখা উচিত
(কোডটি সাইকিট-লার্নিতে কে-ফোল্ড ক্রস বৈধকরণের সাথে কাজ করছে বলে মনে হচ্ছে, তবে এলোমেলো ও বিভক্তির সাথে নয় So তাই cv
কোডটি কাজ করার জন্য উপরে পরিবর্তন করা দরকার)
8. পুরো ডেটাসেটে ট্রেনের চূড়ান্ত মডেল
classifier.fit(X, y)
সম্পাদনা: আমি এখন সিবেলাইটদের সাথে একমত হই যে 7a পদক্ষেপটি এই ক্রমটিতে খুব বেশি বোঝা যায় না। সুতরাং আমি এটি গ্রহণ করব না।