বড় ডেটাতে লজিস্টিক রিগ্রেশন


9

আমার কাছে প্রায় 5000 টি বৈশিষ্ট্যের ডেটা সেট রয়েছে। সেই ডেটার জন্য আমি বৈশিষ্ট্য নির্বাচনের জন্য চি চি স্কোয়ার পরীক্ষাটি প্রথম ব্যবহার করেছি; এর পরে, আমি প্রায় 1500 ভেরিয়েবল পেয়েছি যা প্রতিক্রিয়ার ভেরিয়েবলের সাথে তাত্পর্যপূর্ণ সম্পর্ক দেখায়।

এখন আমার এটিতে লজিস্টিক রিগ্রেশন ফিট করতে হবে। আমি আর এর জন্য গ্লমলটি প্যাকেজটি ব্যবহার করছি (গ্লমলটি প্যাকেজটি ভিএলএমের জন্য দক্ষ সাবসেট নির্বাচন সরবরাহ করে) তবে এটি একবারে কেবলমাত্র 30 টি বৈশিষ্ট্য ব্যবহার করতে পারে, অন্যথায় এটির কার্যকারিতা হ্রাস পাবে কারণ আমার ডেটাসেটে সারি সংখ্যা 20000 এর কাছাকাছি রয়েছে।

উপরোক্ত সমস্যাগুলি সমাধান করার জন্য অন্য কোনও পদ্ধতি বা কৌশল আছে কি? আমি যদি উপরের পদ্ধতিটি অনুসরণ করি তবে এটি মডেল ফিট করতে খুব বেশি সময় লাগবে।


8
আপনি যদি কোনও একক মেশিনের স্মৃতিতে আপনার ডেটাসেটটি ফিট করতে পারেন তবে আমি এটিকে "বিগ ডেটা" সমস্যা বলব না, বিশেষত যদি আপনি নিজের প্রশ্নের শিরোনামে এটি করেন
লগ্ক

আমি ব্যবহার করছি sklearn's LogisticRegressionএবং এটি আমার ল্যাপটপ এর ক্ষেত্রে এক মিনিটেরও সম্পর্কে একটি 4000 বৈশিষ্ট্য, 20,000 সারি সমস্যা solves।
থমাস আহলে

উত্তর:


13

ফিচার স্ক্রিনিং করা এবং তারপরে বেঁচে থাকা বৈশিষ্ট্যগুলিকে এমন কোনও পদ্ধতিতে খাওয়ানো উপযুক্ত নয় যা বুঝতে পারে না যে আগে কতটা ডেটা অত্যাচার করা হয়েছিল। এমন সম্ভাব্য বৈশিষ্ট্যগুলি (যেমন, ইলাস্টিক নেট) পরিচালনা করতে পারে এমন একটি পদ্ধতি ব্যবহার করা আরও ভাল। ডেটা হ্রাস ব্যবহার সম্পর্কে অন্যের পরামর্শগুলিও দুর্দান্ত ধারণা।


এর কোন প্রমাণ আছে কি? O / w এটিকে বৈশিষ্ট্য স্ক্রিনিংয়ের মতোই তাত্পর্যপূর্ণ মনে হয়।
জুবিন

2
পেনালাইজড সর্বাধিক সম্ভাবনার প্রাক্কলনটি প্রাসঙ্গিক বিবেচনায় নেয়, উদাহরণস্বরূপ, লসোতে একটি ভেরিয়েবলের রিগ্রেশন সহগের প্রাক্কলনটি যদি আপনি ১০০ টি অ-নির্বাচিত ভেরিয়েবল বিবেচনা করেন তবে 1000 টি নির্বাচিত ভেরিয়েবল বিবেচনা করলে ছোট হবে smaller অন্যথায়, ভেরিয়েবলগুলি পক্ষপাতদুষ্ট পদ্ধতিতে নির্বাচন করা হয় এবং দ্বিতীয় ধাপে ভেরিয়েবলটিকে রিফাইটিং করা প্রসঙ্গে হারায়।
ফ্র্যাঙ্ক হ্যারেল

আপনি এখানে পক্ষপাতদুষ্ট বলতে কী বোঝাতে চেয়েছিলেন? আমি ভাবছি, কারণ একটি তুচ্ছ অর্থে লসো সর্বদা পক্ষপাতদুষ্ট, তাই আপনাকে অতিরিক্ত পক্ষপাতিত্ব উল্লেখ করতে হবে। এছাড়াও, যুক্তিসঙ্গত বৈশিষ্ট্যগুলির সাথে কিছু দ্বি-পর্যায়ের পন্থা রয়েছে যেমন, pdfs.semanticscholar.org/d90a/…
jmb

2
Lasso শূন্য প্রতি ইচ্ছাপূর্বক গোঁড়ামির কোফিসিয়েন্টস overfitting প্রতিরোধ। আনপেনালাইজড পরামিতিগুলি পূর্বাভাসিত মানগুলিকে নিয়ে যায় যা অত্যন্ত চরম। আনপেনালাইজড মডেলটিতে "নির্বাচিত" ভেরিয়েবলগুলি ফিটিং করা প্রয়োজনীয় লাশো পক্ষপাতিকে পূর্বাবস্থায় ফিরিয়ে আনবে , পূর্বাভাসিত মানগুলির তুলনায় অনেক বেশি পরিমাণে ফিট করে।
ফ্র্যাঙ্ক হ্যারেল

10

ডেটাসেটের মাত্রিকতা হ্রাস করার জন্য পিসিএ ব্যবহার করা প্রথম পদ্ধতি। মোট বৈকল্পিকের ~ 97% বজায় রাখার চেষ্টা করুন, এটি বেশ কিছুটা সাহায্য করতে পারে।

অন্য বিকল্পটি হ'ল স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত জাতীয় কিছু ব্যবহার করা, এটি অনেক দ্রুত অ্যালগরিদম হতে পারে এবং আর এর স্মৃতিতে ফিট করতে সক্ষম।

সম্পাদনা: আর এর সাথে একটি সমস্যা হ'ল আপনি কেবলমাত্র আপনার র‌্যাম ব্যবহার করতে পারেন তাই আপনার যদি কেবল 8 গিগাবাইট মেমরি থাকে তবে এটিই আপনার সীমাবদ্ধ। আমি এটি নিয়ে অনেক সমস্যায় পড়েছি এবং তখন থেকে পাইথনের সাইকিট-লার্ন ব্যবহার করে এগিয়ে চলেছি যা বড় ডেটাসেটগুলি আরও ভাল পরিচালনা করতে পারে বলে মনে হয়।

আপনার ডেটাসেটের আকারের উপর ভিত্তি করে জায়গাগুলি সম্পর্কে কিছু ধারণা দেওয়ার জন্য একটি খুব সুন্দর চার্ট এখানে পাওয়া যাবে: http://3.bp.blogspot.com/-dofu6J0sZ8o/UrctKb69QdI/AAAAAAAADfg/79ewPecn5XU/s1600/scikit-learn-flow -chart.jpg

এখানে চিত্র বর্ণনা লিখুন


8
এইভাবে পিসিএ ব্যবহারের সাথে একটি বড় উদ্বেগ হ'ল প্রতিক্রিয়া পরিবর্তনশীল এবং স্বতন্ত্র ভেরিয়েবলের মধ্যে থাকা সমস্ত সম্পর্ক আপনার অবহেলা করে এমন মোট বৈকল্পিকতার 3% এর মধ্যে থাকতে পারে। কতগুলি মূল উপাদান ব্যবহার করা হবে তা নির্ধারণের কোনও সাধারণ উপায় বলে মনে হয় না, কারণ খুব ক্ষুদ্রতম উপাদানটি নিজেই প্রতিক্রিয়াতে আনুপাতিক হতে পারে এবং এর ফলে ভেরিয়েবলের সর্বোত্তম পছন্দটি অন্তর্ভুক্ত করতে পারে।
whuber

1
আমি মনে করি যে আপনি যদি মূল মেমরিতে ডেটাसेटটি লোড করতে সক্ষম হন (যা আমি মনে করি আপনি যা ব্যাখ্যা করেছেন তা বিবেচনা করে ক্ষেত্রে) তবে স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত হ'ল মাত্রিক মাত্রা হ্রাস করার কৌশলগুলি ব্যবহার করার আগে আপনাকে নেওয়া উচিত। পাইথনে সাইকিট-শিখার মাধ্যমে (বা আর, তবে আমি এই ভাষার ব্যবহারকারীর নই), এটি ঠিক কাজ করবে।
বারট্র্যান্ড আর

আমি মনে করি এটি একটি দরকারী উত্তর, তবে আমি মনে করি যে ওপি লজিস্টিক রিগ্রেশন সম্পর্কে জিজ্ঞাসা করছে, বৈশিষ্ট্য হ্রাস নয়। আপনি একটি সংস্করণে প্রশ্নের অংশটি সম্বোধন করতে পারেন?
লগ্যাক

রিগ্রেশন সমস্যার জন্য পিসিএ কতটা কার্যকর তা আমি নিশ্চিত নই। সমস্যাটি হ'ল: পিসিএ ইনপুট ম্যাট্রিক্সের বৃহত্তম একক মান রাখে, তবে ম্যাট্রিক্সের সিউডো-ইনভার্স একক মানগুলিকে উল্টে দেয়, তাই আপনি সত্যিকার অর্থে মূল মানগুলির মধ্যে সবচেয়ে ছোট রাখতে চান । কেবলমাত্র ডেটা স্কেচ করা ভাল হতে পারে: arxiv.org/abs/1411.4357
টমাস আহলে

4

যেমন @ ফ্র্যাঙ্ক হ্যারেল ইতিমধ্যে উল্লেখ করেছেন, সমস্ত 5000 টি বৈশিষ্ট্য ( পি ) দিয়ে দণ্ডিত রিগ্রেশন করতে ইলাস্টিক নেট বা ল্যাসো ব্যবহার করা বৈশিষ্ট্য নির্বাচনের জন্য ভাল শুরু হবে (3500 ভেরিয়েবল সহজেই মুছে ফেলা যায় না কারণ তারা "পরিসংখ্যানগতভাবে তাত্পর্যপূর্ণ" নয়) সুদের নির্ভরশীল পরিবর্তনশীল)। এই প্যাকেজের যে কোনওটি আর প্যাকেজ ব্যবহার করে সম্পাদন করা যেতে পারে glmnet,।

অর্ডার একাউন্টে সম্পর্ক সুদ (সম্ভাব্য predictor ভেরিয়েবল মধ্যে ভাগ নিতে সালে পি = 5000), আমি একটি চলমান সুপারিশ করবে র্যান্ডম বন ব্যবহার randomForestপ্যাকেজ এবং / অথবা গ্রেডিয়েন্ট boosting ব্যবহার gbmপ্যাকেজ সম্ভাব্য predictor ভেরিয়েবল আপেক্ষিক গুরুত্ব মূল্যায়ন করার বাইনারি ফলাফলের ক্ষেত্রে। এই তথ্যের সাহায্যে আপনি আরও পার্সামোনিয়াস লজিস্টিক রিগ্রেশন মডেল তৈরি করতে আরও প্রস্তুত হবেন।


3
না, মডেল থেকে কোন পরামিতি অপসারণ করবেন তা সিদ্ধান্ত নিতে ডেটা ড্রেজিং করা সঠিক নয়। ইলাস্টিক নেট এর মতো এলোমেলো বনগুলির মান হ'ল এটি সংকোচন করার সঠিক পরিমাণকে অন্তর্ভুক্ত করে। মুখোশ না থাকা এমনভাবে পাওয়া যায় এমন ভেরিয়েবলগুলির একটি উপসেট দিয়ে শুরু করা পক্ষপাত ঘটায়। Y
ফ্র্যাঙ্ক হ্যারেল

1

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

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

মনে রাখবেন যে 'হাজার হাজার মেশিন' alচ্ছিক (!), আপনি এটি আপনার স্থানীয় কাজ / হোম ডেস্কটপেও সেটআপ করতে পারেন।

এমএলিব ফিরে যেতে, এটি বাক্সের বাইরে নীচের অ্যালগোরিদম সঙ্গে আসে:

  • কে-অর্থ কে-মানে নিয়ে ক্লাস্টারিং || আরম্ভ.
  • L1- এবং L2- নিয়মিত লিনিয়ার রিগ্রেশন।
  • L1- এবং L2- নিয়মিত লজিস্টিক রিগ্রেশন।
  • সুস্পষ্ট রেটিং বা অন্তর্নিহিত প্রতিক্রিয়া সহ, সর্বনিম্ন স্কোয়ারগুলির সহযোগী ফিল্টারিংকে পরিবর্তন করা।
  • নাইভ বেয়েস বহুজাতিক শ্রেণিবদ্ধকরণ।
  • স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত।

আপনি যদি নিয়মিত বড় ডেটা নিয়ে কাজ করেন তবে আপনার একটি হাদুপ সমাধান গ্রহণ করতে হবে need


0

আপনি ভোপাল ওয়াবিট: ভোপাল ওয়াববিট চেষ্টা করতে পারেন । এটি খুব বড় ডেটাসেট এবং খুব বড় সংখ্যক বৈশিষ্ট্য সহ ভাল কাজ করে।

ওয়েবসাইট অনুযায়ী:

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

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