প্রথমত, যখন আপনার অনেক সহজাত মাত্রা থাকে এবং ডাটা পয়েন্টগুলি নতুন অরথোগোনাল ভিত্তিতে ঘুরিয়ে দিয়ে এবং কেবলমাত্র বৃহত বৈচিত্রের সাথে কেবল অক্ষগুলি নিয়ে সমস্যার আকার কমিয়ে আনতে চান তখন প্রথমদিকে মাত্রা হ্রাস ব্যবহৃত হয় । 8 ভেরিয়েবল (কলাম) দিয়ে আপনার স্থানটি ইতিমধ্যে নিম্ন-মাত্রিক, ভেরিয়েবলের সংখ্যা হ্রাস করা মেমরির আকারের সাথে প্রযুক্তিগত সমস্যাগুলি সমাধান করার সম্ভাবনা কম তবে ডেটাসেটের গুণমানকে অনেক প্রভাব ফেলতে পারে। আপনার কংক্রিটের ক্ষেত্রে এটি অনলাইনে শেখার দিকে নজর দেওয়া আরও প্রতিশ্রুতিবদ্ধপদ্ধতি। মোটামুটিভাবে বলতে গেলে, পুরো ডেটাসেটের সাথে কাজ করার পরিবর্তে, এই পদ্ধতিগুলি একবারে তাদের কিছুটা অংশ নিয়ে যায় (প্রায়শই "মিনি-ব্যাচ" হিসাবে পরিচিত) এবং ক্রমবর্ধমানভাবে একটি মডেল তৈরি করে। (আমি ব্যক্তিগতভাবে কোনও অনলাইন ফিডের মতো ইন্টারনেট থেকে ডেটা অবিরত দীর্ঘ উত্সের রেফারেন্স হিসাবে "অনলাইন" শব্দের ব্যাখ্যা করতে চাই, যেখানে আপনি কেবলমাত্র পুরো ডেটাसेट একবারে লোড করতে পারবেন না)।
তবে আপনি যদি পিসিএর মতো মাত্রিক মাত্রা হ্রাস কৌশলটি কোনও ডেটাসেটে প্রয়োগ করতে চান যা মেমরির সাথে খাপ খায় না? সাধারণত একটি ডেটাসেটের একটি ডাটা ম্যাট্রিক্স হিসাবে প্রতিনিধিত্ব করা হয় এক্স আকারের এন এক্স মি , যেখানে n হল পর্যবেক্ষণ (ROWS) ও সংখ্যা মি ভেরিয়েবল (COLUMNS) এর একটি সংখ্যা। সাধারণত স্মৃতিতে সমস্যাগুলি এই দুটি সংখ্যার মধ্যে একটি থেকে আসে।
অনেকগুলি পর্যবেক্ষণ (এন >> মি)
আপনার যখন অনেক বেশি পর্যবেক্ষণ থাকে তবে ভেরিয়েবলের সংখ্যা ছোট থেকে মাঝারি হতে থাকে, আপনি ক্রমবর্ধমান ম্যাট্রিক্স বর্ধন করতে পারেন । বস্তুত, টিপিক্যাল পিসিএ আকারের একটি সহভেদাংক ম্যাট্রিক্স নির্মাণের নিয়ে গঠিত মি এক্স মি এবং এটি একবচন মান পচানি আবেদন। টাইপ ফ্লোট 64 এর এম = 1000 ভেরিয়েবলের সাথে, একটি কোভরিয়েন্স ম্যাট্রিক্সের আকার 1000 * 1000 * 8 ~ 8 এমবি রয়েছে, যা সহজেই স্মৃতিতে ফিট হয়ে যায় এবং এসভিডি ব্যবহার করা যেতে পারে। - আপনি শুধুমাত্র মেমরিতে সমগ্র ডেটা সেটটি লোড ছাড়া সহভেদাংক ম্যাট্রিক্স নির্মাণ করা প্রয়োজন তাই প্রশংসনীয় নম্র টাস্ক ।
বিকল্পভাবে, আপনি আপনার ডেটাসেট থেকে একটি ছোট প্রতিনিধি নমুনা নির্বাচন করতে পারেন এবং কোভারিয়েন্স ম্যাট্রিক্সের আনুমানিক । এই ম্যাট্রিক্সের সাধারণ হিসাবে একই বৈশিষ্ট্য থাকবে, কিছুটা কম সঠিক।
অনেকগুলি ভেরিয়েবল (এন << মি)
অন্যদিকে, কখনও কখনও, যখন আপনার খুব বেশি ভেরিয়েবল থাকে , covariance ম্যাট্রিক্স নিজেই মেমরির সাথে খাপ খায় না। যেমন আপনি যদি 640x480 চিত্র নিয়ে কাজ করেন তবে প্রতিটি পর্যবেক্ষণে 640 * 480 = 307200 ভেরিয়েবল রয়েছে, যার ফলস্বরূপ 703 জিবি কোভারিয়েন্স ম্যাট্রিক্স! এটি অবশ্যই আপনার কম্পিউটারের স্মৃতিতে বা আপনার ক্লাস্টারের স্মৃতিতে রাখতে চান না। সুতরাং আমাদের মোটেও কোভারিয়েন্স ম্যাট্রিক্স না তৈরি করে মাত্রা হ্রাস করা দরকার।
এটি করার জন্য আমার প্রিয় পদ্ধতিটি র্যান্ডম প্রজেকশন । সংক্ষেপে বলতে গেলে, আপনি ডেটা সেটটি আছে যদি এক্স আকারের এন এক্স মি , আপনি এটি কিছু বিক্ষিপ্ত র্যান্ডম ম্যাট্রিক্স দ্বারা গুন করতে আর আকারের মি এক্স ট (সঙ্গে ট << মি এবং) প্রাপ্ত নতুন ম্যাট্রিক্স এক্স ' অনেক ছোট আকারের এন এক্স ট মূল হিসাবে প্রায় একই বৈশিষ্ট্য সঙ্গে । কেন এটি কাজ করে? ওয়েল, আপনার যা জানা উচিত (প্রধান উপাদান) লম্ব অক্ষ সেট এটি যে পিসিএ লক্ষ্য ও প্রথম সম্মুখের আপনার ডেটা প্রকল্প টতাদের মধ্যে. দেখা যাচ্ছে যে বিরল এলোমেলো ভেক্টরগুলি প্রায় অর্থেগোনাল এবং সুতরাং এটি একটি নতুন ভিত্তি হিসাবেও ব্যবহৃত হতে পারে।
এবং, অবশ্যই, আপনি পুরো ডেটা সেটটি গুন করতে হবে না এক্স দ্বারা আর - আপনি যে পর্যবেক্ষণ অনুবাদ করতে পারেন এক্স নতুন ভিত্তি মধ্যে আলাদাভাবে বা মিনি ব্যাচে।
এলোমেলো এসভিডি নামেও কিছুটা অনুরূপ অ্যালগরিদম রয়েছে । এটির সাথে আমার কোনও বাস্তব অভিজ্ঞতা নেই তবে আপনি এখানে ব্যাখ্যা সহ উদাহরণ কোড খুঁজে পেতে পারেন ।
নীচের লাইন হিসাবে, বড় ডেটাসেটের মাত্রিকতা হ্রাসের জন্য এখানে একটি সংক্ষিপ্ত চেক তালিকা রয়েছে:
- আপনার যদি এমন অনেকগুলি মাত্রা (ভেরিয়েবল) না থাকে তবে কেবল অনলাইনে শেখার অ্যালগরিদম ব্যবহার করুন।
- যদি অনেকগুলি পর্যবেক্ষণ থাকে তবে সংখ্যক ভেরিয়েবল (কোভরিয়েন্স ম্যাট্রিক্স স্মৃতিতে ফিট করে), ম্যাট্রিক্স ক্রমবর্ধমানভাবে তৈরি করুন এবং সাধারণ এসভিডি ব্যবহার করুন।
- যদি ভেরিয়েবলের সংখ্যা খুব বেশি হয় তবে ইনক্রিমেন্টাল অ্যালগরিদম ব্যবহার করুন।