মূলধনী অক্ষর (পাইথনে) ব্যবহার করে ট্রেন এবং পরীক্ষার ডেটাগুলির ভেরিয়েবলগুলি সংজ্ঞায়িত করা হয় কেন?


15

আমি আশা করি এই প্রশ্নটি এই সাইটে সবচেয়ে উপযুক্ত ...

পাইথনে, সাধারণত শ্রেণির নামটি প্রথম অক্ষর হিসাবে মূল অক্ষরটি ব্যবহার করে সংজ্ঞায়িত করা হয়

class Vehicle:
    ...

যাইহোক, মেশিন লার্নিং মাঠে, প্রায়ই বার প্রশিক্ষণ এবং পরীক্ষার তথ্য হিসাবে সংজ্ঞায়িত করা হয় Xএবং Y- না xএবং y। উদাহরণস্বরূপ, আমি এখন ক্যারাসের এই টিউটোরিয়ালটি পড়ছি , তবে এটি এর ভেরিয়েবল হিসাবে Xএবং ব্যবহার করে Y:

from sklearn import datasets

mnist = datasets.load_digits()
X = mnist.data
Y = mnist.target

এগুলিকে কেন মূলধন হিসাবে সংজ্ঞায়িত করা হয়? মেশিন লার্নিং ফিল্ডের মধ্যে কি কোনও কনভেনশন (কমপক্ষে পাইথন) রয়েছে যে এই ভেরিয়েবলগুলি সংজ্ঞায়িত করার জন্য মূলধনপত্রটি ব্যবহার করা ভাল?

অথবা সম্ভবত লোকেরা মেশিন লার্নিংয়ের ক্ষেত্রে উচ্চ বনাম লোয়ার কেস ভেরিয়েবলগুলিকে আলাদা করতে পারে?

বাস্তবে একই টিউটোরিয়াল পরে নিম্নলিখিতগুলির মতো এই ভেরিয়েবলগুলি পৃথক করে:

from sklearn.cross_validation import train_test_split

train_X, test_X, train_y, test_y = train_test_split(X, Y, train_size=0.7, random_state=0)

আমি নিশ্চিত যে আমাদের বেশিরভাগের কাছেই এই প্রশ্ন ছিল তবে ললকে জিজ্ঞাসা করতে খুব বোকা লাগল। ধন্যবাদ :)
অঙ্কিত বিন্দাল

উত্তর:


20

এক্স (এবং কখনও কখনও Y) ভেরিয়েবলগুলি ম্যাট্রিক হয়।

কিছু গণিতের স্বরলিপিতে ভেক্টর ভেরিয়েবলের নামগুলি লোয়ার কেস এবং ম্যাট্রিক্স ভেরিয়েবলের নাম আপার কেস হিসাবে লেখার পক্ষে প্রচলিত অনুশীলন। প্রায়শই এগুলি গা bold়ভাবে থাকে বা অন্য টীকা থাকে, তবে এটি কোডে ভাল অনুবাদ করে না। যেভাবেই হোক, আমি বিশ্বাস করি যে অনুশীলনটি এই স্বরলিপিটি থেকে স্থানান্তরিত হয়েছে।

আপনি কোডেও লক্ষ্য করতে পারেন, যখন লক্ষ্য ভেরিয়েবলটি মানগুলির একক কলাম হয়, এটি লিখিত হয় y, সুতরাং আপনার কাছেX, y

অবশ্যই, পাইথনের এটির কোনও বিশেষ অর্থবোধক অর্থ নেই এবং আপনি সম্মেলনটি উপেক্ষা করতে পারেন free তবে এটি একটি সম্মেলনে পরিণত হওয়ার কারণে, আপনি যদি নিজের কোডটি ভাগ করেন তবে এটি রক্ষণাবেক্ষণের পক্ষে উপযুক্ত।


8

আমি মনে করি পাইথনের সাথে এটির গাণিতিক কিছু নয়। এক্স একটি ম্যাট্রিক্স এবং y একটি ভেক্টর (বেশিরভাগ সময়)। সাধারণত বড় হাতের অক্ষর ম্যাট্রিক্সের জন্য এবং লোয়ার কেস লেটারগুলি ভেক্টরগুলির জন্য ব্যবহৃত হয়।

এজন্য আপনি প্রায়শই এরকম কিছু দেখতে পান ( স্কালার্ন উদাহরণ থেকে ):

digits = datasets.load_digits(n_class=10)
X = digits.data
y = digits.target

বা এটি (একই উদাহরণ থেকে):

x_min, x_max = np.min(X_red, axis=0), np.max(X_red, axis=0)
X_red = (X_red - x_min) / (x_max - x_min)

এখানে এক্স_রেড হ'ল একটি এমএক্সএন ম্যাট্রিক্স (আপার কেস) এবং x_min দৈর্ঘ্য এন এর ভেক্টর (লোয়ার কেস)।


আহ যে বোঝায়। আমি এটি সম্পর্কে ভুলে গেছি। তবে তারপরেও Yভেক্টর হওয়া সত্ত্বেও বড় হাতের অক্ষর কেন ? ( Y.shapeরিটার্ন (1797,), এফওয়াইআই)
ব্লেজার্ড

1
@ ব্লাজার্ড: আমি আশা করি সেক্ষেত্রে কেউ এই সম্মেলনটি অনুসরণ করতে ব্যর্থ হয়েছেন। এমএনআইএসটি এবং অনুরূপ বহু-শ্রেণিবদ্ধ শ্রেণিবদ্ধের সাথে আরও একটি জটিলতা রয়েছে যে লক্ষ্য পরিবর্তনশীল ক্লাস আইডির একটি তালিকা (একটি ভেক্টর) এবং এক-হট এনকোডিংগুলির (একটি ম্যাট্রিক্স) তালিকার মধ্যে ফর্ম পরিবর্তন করতে পারে।
নিল স্লেটার

পছন্দ করেছেন ফলোআপের জন্য আপনাকে ধন্যবাদ।
ব্লেজার্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.