কীভাবে বড় ডেটা সহ এসভিডি এবং পিসিএ করবেন?


29

আমার কাছে প্রচুর ডেটা রয়েছে (প্রায় 8 জিবি)। আমি এটি বিশ্লেষণ করতে মেশিন লার্নিং ব্যবহার করতে চাই। সুতরাং, আমি মনে করি দক্ষতার জন্য ডেটা মাত্রিকতা হ্রাস করার জন্য আমার এসভিডি তখন পিসিএ ব্যবহার করা উচিত। তবে ম্যাটল্যাব এবং অকটাভ এত বড় ডেটাসেট লোড করতে পারে না।

এত বড় ডেটা দিয়ে এসভিডি করতে আমি কোন সরঞ্জামগুলি ব্যবহার করতে পারি?


হাই, এবং ডিএসে আপনাকে স্বাগতম! সম্ভবত আপনি নিজের ডেটাসেটটিতে কিছুটা ব্যাখ্যা করতে পারেন। আপনার কতটি সারি এবং কলাম রয়েছে? এটি সম্ভাব্য সমাধানগুলিতে প্রভাব ফেলতে পারে।
এস। কোলাসা - মনিকা পুনরায় ইনস্টল করুন

23711341 সারি, এবং 8 টি কলাম। আমি 1-2 কলামগুলি অপসারণ করতে চেষ্টা করতে পারি। তারা আমার সমস্যার সাথে সম্পর্কিত বলে মনে হচ্ছে না।
ডেভিড এস

এখানে কলামগুলির আগে আপনার সারি নমুনা করা উচিত। তথ্যের আকার হ্রাস করতে আপনি এলোমেলোভাবে সারি নমুনা সারণি করতে পারবেন না এমন কোনও কারণ আছে? আমি ধরে নিচ্ছি যে সারিগুলি এখানে ব্যবহারকারী বা
কোনও কিছুর

আমি নিজেকে পরিষ্কার করে না দিলে দুঃখিত। আমার লক্ষ্য পিসিএ করা। আমার মনে হয় স্যাম্পল ডেটাতে থাকা এসভিডি আমাকে পিসিএ করতে সাহায্য করতে পারে না, তাইনা?
ডেভিড এস

পিসিএ সাধারণত কোভারিয়েন্স ম্যাট্রিক্সে এসভিডি কম্পিউটিং করে প্রয়োগ করা হয়। কোভেরিয়েন্স ম্যাট্রিক্স গণনা করা একটি বিব্রতকরভাবে সমান্তরাল কাজ, সুতরাং এটি রেকর্ডের সংখ্যা সহ সহজেই স্কেল করা উচিত।
অ্যানি-মৌসে

উত্তর:


41

প্রথমত, যখন আপনার অনেক সহজাত মাত্রা থাকে এবং ডাটা পয়েন্টগুলি নতুন অরথোগোনাল ভিত্তিতে ঘুরিয়ে দিয়ে এবং কেবলমাত্র বৃহত বৈচিত্রের সাথে কেবল অক্ষগুলি নিয়ে সমস্যার আকার কমিয়ে আনতে চান তখন প্রথমদিকে মাত্রা হ্রাস ব্যবহৃত হয় । 8 ভেরিয়েবল (কলাম) দিয়ে আপনার স্থানটি ইতিমধ্যে নিম্ন-মাত্রিক, ভেরিয়েবলের সংখ্যা হ্রাস করা মেমরির আকারের সাথে প্রযুক্তিগত সমস্যাগুলি সমাধান করার সম্ভাবনা কম তবে ডেটাসেটের গুণমানকে অনেক প্রভাব ফেলতে পারে। আপনার কংক্রিটের ক্ষেত্রে এটি অনলাইনে শেখার দিকে নজর দেওয়া আরও প্রতিশ্রুতিবদ্ধপদ্ধতি। মোটামুটিভাবে বলতে গেলে, পুরো ডেটাসেটের সাথে কাজ করার পরিবর্তে, এই পদ্ধতিগুলি একবারে তাদের কিছুটা অংশ নিয়ে যায় (প্রায়শই "মিনি-ব্যাচ" হিসাবে পরিচিত) এবং ক্রমবর্ধমানভাবে একটি মডেল তৈরি করে। (আমি ব্যক্তিগতভাবে কোনও অনলাইন ফিডের মতো ইন্টারনেট থেকে ডেটা অবিরত দীর্ঘ উত্সের রেফারেন্স হিসাবে "অনলাইন" শব্দের ব্যাখ্যা করতে চাই, যেখানে আপনি কেবলমাত্র পুরো ডেটাसेट একবারে লোড করতে পারবেন না)।

তবে আপনি যদি পিসিএর মতো মাত্রিক মাত্রা হ্রাস কৌশলটি কোনও ডেটাসেটে প্রয়োগ করতে চান যা মেমরির সাথে খাপ খায় না? সাধারণত একটি ডেটাসেটের একটি ডাটা ম্যাট্রিক্স হিসাবে প্রতিনিধিত্ব করা হয় এক্স আকারের এন এক্স মি , যেখানে n হল পর্যবেক্ষণ (ROWS) ও সংখ্যা মি ভেরিয়েবল (COLUMNS) এর একটি সংখ্যা। সাধারণত স্মৃতিতে সমস্যাগুলি এই দুটি সংখ্যার মধ্যে একটি থেকে আসে।

অনেকগুলি পর্যবেক্ষণ (এন >> মি)

আপনার যখন অনেক বেশি পর্যবেক্ষণ থাকে তবে ভেরিয়েবলের সংখ্যা ছোট থেকে মাঝারি হতে থাকে, আপনি ক্রমবর্ধমান ম্যাট্রিক্স বর্ধন করতে পারেন । বস্তুত, টিপিক্যাল পিসিএ আকারের একটি সহভেদাংক ম্যাট্রিক্স নির্মাণের নিয়ে গঠিত মি এক্স মি এবং এটি একবচন মান পচানি আবেদন। টাইপ ফ্লোট 64 এর এম = 1000 ভেরিয়েবলের সাথে, একটি কোভরিয়েন্স ম্যাট্রিক্সের আকার 1000 * 1000 * 8 ~ 8 এমবি রয়েছে, যা সহজেই স্মৃতিতে ফিট হয়ে যায় এবং এসভিডি ব্যবহার করা যেতে পারে। - আপনি শুধুমাত্র মেমরিতে সমগ্র ডেটা সেটটি লোড ছাড়া সহভেদাংক ম্যাট্রিক্স নির্মাণ করা প্রয়োজন তাই প্রশংসনীয় নম্র টাস্ক

বিকল্পভাবে, আপনি আপনার ডেটাসেট থেকে একটি ছোট প্রতিনিধি নমুনা নির্বাচন করতে পারেন এবং কোভারিয়েন্স ম্যাট্রিক্সের আনুমানিক । এই ম্যাট্রিক্সের সাধারণ হিসাবে একই বৈশিষ্ট্য থাকবে, কিছুটা কম সঠিক।

অনেকগুলি ভেরিয়েবল (এন << মি)

অন্যদিকে, কখনও কখনও, যখন আপনার খুব বেশি ভেরিয়েবল থাকে , covariance ম্যাট্রিক্স নিজেই মেমরির সাথে খাপ খায় না। যেমন আপনি যদি 640x480 চিত্র নিয়ে কাজ করেন তবে প্রতিটি পর্যবেক্ষণে 640 * 480 = 307200 ভেরিয়েবল রয়েছে, যার ফলস্বরূপ 703 জিবি কোভারিয়েন্স ম্যাট্রিক্স! এটি অবশ্যই আপনার কম্পিউটারের স্মৃতিতে বা আপনার ক্লাস্টারের স্মৃতিতে রাখতে চান না। সুতরাং আমাদের মোটেও কোভারিয়েন্স ম্যাট্রিক্স না তৈরি করে মাত্রা হ্রাস করা দরকার।

এটি করার জন্য আমার প্রিয় পদ্ধতিটি র্যান্ডম প্রজেকশন । সংক্ষেপে বলতে গেলে, আপনি ডেটা সেটটি আছে যদি এক্স আকারের এন এক্স মি , আপনি এটি কিছু বিক্ষিপ্ত র্যান্ডম ম্যাট্রিক্স দ্বারা গুন করতে আর আকারের মি এক্স (সঙ্গে << মি এবং) প্রাপ্ত নতুন ম্যাট্রিক্স এক্স ' অনেক ছোট আকারের এন এক্স মূল হিসাবে প্রায় একই বৈশিষ্ট্য সঙ্গে । কেন এটি কাজ করে? ওয়েল, আপনার যা জানা উচিত (প্রধান উপাদান) লম্ব অক্ষ সেট এটি যে পিসিএ লক্ষ্য ও প্রথম সম্মুখের আপনার ডেটা প্রকল্প তাদের মধ্যে. দেখা যাচ্ছে যে বিরল এলোমেলো ভেক্টরগুলি প্রায় অর্থেগোনাল এবং সুতরাং এটি একটি নতুন ভিত্তি হিসাবেও ব্যবহৃত হতে পারে।

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

এলোমেলো এসভিডি নামেও কিছুটা অনুরূপ অ্যালগরিদম রয়েছে । এটির সাথে আমার কোনও বাস্তব অভিজ্ঞতা নেই তবে আপনি এখানে ব্যাখ্যা সহ উদাহরণ কোড খুঁজে পেতে পারেন ।


নীচের লাইন হিসাবে, বড় ডেটাসেটের মাত্রিকতা হ্রাসের জন্য এখানে একটি সংক্ষিপ্ত চেক তালিকা রয়েছে:

  1. আপনার যদি এমন অনেকগুলি মাত্রা (ভেরিয়েবল) না থাকে তবে কেবল অনলাইনে শেখার অ্যালগরিদম ব্যবহার করুন।
  2. যদি অনেকগুলি পর্যবেক্ষণ থাকে তবে সংখ্যক ভেরিয়েবল (কোভরিয়েন্স ম্যাট্রিক্স স্মৃতিতে ফিট করে), ম্যাট্রিক্স ক্রমবর্ধমানভাবে তৈরি করুন এবং সাধারণ এসভিডি ব্যবহার করুন।
  3. যদি ভেরিয়েবলের সংখ্যা খুব বেশি হয় তবে ইনক্রিমেন্টাল অ্যালগরিদম ব্যবহার করুন।

3
সামগ্রিকভাবে, আমি আপনার উত্তরটি পছন্দ করি তবে শুরুর বাক্যটি ঠিক সঠিক নয়। পিসিএ কম বৈচিত্র সহ অনেক মাত্রার জন্য উপযুক্ত নয়; বরং এটি পারস্পরিক সম্পর্কের সাথে অনেকগুলি মাত্রার জন্য উপযুক্ত । প্রদত্ত ডেটা সেটের জন্য, বৈচিত্রটি সমস্ত মাত্রায় উচ্চ হতে পারে তবে যতক্ষণ না উচ্চতর সমবায় রয়েছে, ততক্ষণে পিসিএ তাত্পর্যপূর্ণ মাত্রিকতা হ্রাস পেতে পারে।
বোগাট্রন

1
@ বোগাট্রন: ভাল ধরা, ধন্যবাদ প্রকৃতপক্ষে, আমি কিছু মাত্রায় উচ্চ / নিম্ন পরিবর্তনের কথা উল্লেখ করছিলাম , সম্ভবত মূলগুলি নয়। উদাহরণস্বরূপ এই ছবিতে এই মাত্রাগুলি 2 টি তীর দ্বারা সংজ্ঞায়িত করা হয়েছে, মূল x / y অক্ষ নয়। পিসিএ এই নতুন অক্ষগুলি সন্ধান করতে চায় এবং প্রতিটি অক্ষের সাথে তারতম্যের মান অনুসারে বাছাই করে। যাইহোক, আপনি উল্লেখ করেছেন যে এটি একটি খারাপ শব্দ ছিল, তাই আমি আমার ধারণাটি সংশোধন করার চেষ্টা করেছি। আশা করি, এখন এটি আরও পরিষ্কার।
ffriend

যে আমার জ্ঞান করে তোলে। +1 টি।
বগাট্রন

7

বিরক্ত করবেন না।

প্রোগ্রামিংয়ের প্রথম নিয়ম - যা ডেটা সায়েন্সের ক্ষেত্রেও প্রযোজ্য: একটি ছোট টেস্ট সমস্যার সাথে কাজ করে সবকিছু পান।

সুতরাং আপনার 100,000 সারি বলার উপাত্তের এলোমেলো নমুনা নিন। একবার আপনার সন্তুষ্টি অনুসারে কাজ করার পরে বিভিন্ন অ্যালগরিদম ইত্যাদির চেষ্টা করুন, আপনি বড় (এবং বৃহত্তর) ডেটা সেটগুলি চেষ্টা করতে পারেন - এবং আরও ডেটা যুক্ত করার সাথে সাথে পরীক্ষা ত্রুটি কীভাবে হ্রাস পাবে তা দেখুন।

তদতিরিক্ত আপনি কেবল 8 টি কলামে এসভিডি প্রয়োগ করতে চান না: আপনার যখন প্রচুর কলাম রয়েছে তখন আপনি এটি প্রয়োগ করেন।



6

পিসিএ সাধারণত কোভারিয়েন্স ম্যাট্রিক্সে এসভিডি কম্পিউটিং করে প্রয়োগ করা হয়।

কোভেরিয়েন্স ম্যাট্রিক্স গণনা করা একটি বিব্রতকরভাবে সমান্তরাল কাজ, সুতরাং এটি রেকর্ডের সংখ্যার সাথে রৈখিককে স্কেল করে এবং একাধিক মেশিনে বিতরণ করার জন্য তুচ্ছ!

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

আপনার যখন বিশাল সংখ্যক ভেরিয়েবল থাকে তখন বিষয়গুলি আলাদা হয় । তবে একটি 8 জিবি সিস্টেমে, আপনার বিএলএএস লাইব্রেরি সহ 20.000 মাত্রা পর্যন্ত মেমোরিতে পিসিএ চালানো উচিত। তবে তারপরে আপনি এই সমস্যায় পড়তে পারেন যে পিসিএ সমস্ত এত নির্ভরযোগ্য নয়, কারণ এতে অনেক বেশি ডিগ্রি স্বাধীনতা রয়েছে। অন্য কথায়: এটি সহজেই অত্যধিক করে তোলে। আমি কমপক্ষে 10 * ডি * ডি রেকর্ড থাকার সুপারিশটি দেখেছি (বা এটি ডি ^ 3 ছিল)। সুতরাং 10000 মাত্রার জন্য, ফলাফলটি পরিসংখ্যানগতভাবে নির্ভরযোগ্য হওয়ার জন্য আপনার কমপক্ষে একটি বিলিয়ন রেকর্ড (10000 মাত্রার ... এটি অনেক বেশি!) হওয়া উচিত।


1

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


1

আমরা পাইএসপার্ক ব্যবহার করে আরও বড় ডেটা সেটে এসভিডি প্রয়োগ করেছি। আমরা বিভিন্ন প্যাকেজ জুড়ে ধারাবাহিকতা তুলনা করি। লিঙ্কটি এখানে


0

আমি অজগরটিকে পুনরুদ্ধার করব যদি আপনি অলসভাবে ফাইলটি মূল্যায়ন করেন তবে আপনার কাছে একটি মিনিস্কুল মেমোরির পদচিহ্ন থাকবে, এবং নম্পি / স্কিপি আপনাকে সমস্ত টুলস অ্যাক্টেভ / মতলব অ্যাক্সেস দেয়।

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