পাইথন ব্যবহার করে মেশিন লার্নিং


53

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

সুতরাং আমার প্রশ্ন, আরও কি কি

  1. ব্যাপক
  2. স্কেলেবল (100 ক বৈশিষ্ট্য, 10 কে উদাহরণ) এবং
  3. পাইথনে এমএল করার জন্য ভাল লাইব্রেরি আছে?

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

এখানে এবং অন্য কোথাও অতীত ই-মেইল থ্রেডগুলির উপর ভিত্তি করে আমি এখন পর্যন্ত পিএমএল, বিজ্ঞানী-শিখুন এবং কমলা দেখছি। উপরে উল্লিখিত 3 টি মেট্রিকের ক্ষেত্রে জনগণের অভিজ্ঞতাগুলি কেমন হয়েছে?

অন্য কোন পরামর্শ?


আপনার মন্তব্যের জন্য সবাইকে অনেক ধন্যবাদ। আমার মনে হয় আপাতত আমি NLTK + সাইকিট-শিখতে যাব এবং কোথায় জিনিসগুলি দেখতে পাবো।
অ্যান্ডি

1
আমি আপনাকে আর এর দিকে নজর দেওয়ার প্রস্তাব দিতে সাহায্য করতে পারি না , এটির চেয়ে বড় এমএল লাইব্রেরি রয়েছে এবং (বিশেষত এই কাজের জন্য তৈরি করা হচ্ছে) আরও বেশি একজাতীয় পরিবেশ সরবরাহ করে। আর এর পাঠ্য খনির প্যাকেজটি এখানে উপস্থাপন করা হয়েছে

@ এমবিকিউ: হ্যাঁ, আমি আর সম্পর্কে খুব সচেতন, তবে যেহেতু আমাকে প্রকৃত পাঠ্য মাইনিংয়ের আগে অনেক "অ-পরিসংখ্যান" প্রোগ্রামিং করতে হবে, তাই আমি মনে করি আমি আপাতত পাইথনকে আঁকড়ে রাখব।
অ্যান্ডি

1
আপনি পাইথন এবং আর উভয়ই ব্যবহার করতে পারেন One একটি বিকল্প হ'ল ডাটা প্রসেসিং পদক্ষেপের মধ্যে ফলাফল রাখার জন্য একটি ডাটাবেসের মতো স্টোরেজের ভাষা নিরপেক্ষ পদ্ধতি ব্যবহার করা।
ফাহিম মিঠা

আপনি আপনার পাইথন কোড থেকে ওয়েকা ব্যবহার করতে পারেন: ডিমিট্রি

উত্তর:


40

সাইকিট-লার বিকল্প সম্পর্কে: 100 ক (স্পার্স) বৈশিষ্ট্য এবং 10 কে নমুনাগুলি যথেষ্ট পরিমাণে স্মৃতিতে ফিট করার জন্য তাই বিজ্ঞান-শিখার সাথে পুরোপুরি কার্যকর (20 নিউজগ্রুপ ডেটাসেটের মতো একই আকার)।

অনুশীলন এবং সমাধান সহ পাঠ্য শ্রেণিবিন্যাস সম্পর্কিত একটি অধ্যায় সহ পাইকন ২০১১ এ আমি এখানে একটি টিউটোরিয়াল দিয়েছি:

আমি এই বিষয়টিতে একটি বক্তব্যও দিয়েছিলাম যা পাইকন এফআর এ দেওয়া সংস্করণটির একটি আপডেট সংস্করণ। এখানে স্লাইডগুলি (এবং মন্তব্যে এম্বেড করা ভিডিও):

বৈশিষ্ট্য নির্বাচনের ক্ষেত্রে, কোরাতে এই উত্তরটির দিকে একবার নজর দিন যেখানে সমস্ত উদাহরণ বিজ্ঞান-শিখার নথির উপর ভিত্তি করে রয়েছে:

বিজ্ঞান-শিখতে আমাদের কাছে কোলোকেশন বৈশিষ্ট্য নিষ্কাশন নেই। গড় সময়ে এটি করার জন্য nltk এবং nltk- প্রশিক্ষক ব্যবহার করুন:


ধন্যবাদ। এটি এগিয়ে যাওয়ার একটি বিশেষ ভাল উপায় বলে মনে হচ্ছে। আমি এটা চেষ্টা করব.
অ্যান্ডি

@ ইউগ্রিসেল, প্রথম তিনটি লিঙ্কের সাথে কিছু লিঙ্ক পচা হয়েছে (চতুর্থ লিঙ্কের ভিডিওটিও অনুপস্থিত) এখানে নতুন সাইকিট
লেয়ার.অর্গ

14

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

এনএলটিকে: http://www.nltk.org/

জেনসিম: http://nlp.fi.muni.cz/projekty/gensim/

দুর্ভাগ্যক্রমে, আপনার প্রশ্নের মূল প্রবণতা হিসাবে আমি যে নির্দিষ্ট লাইব্রেরিগুলি উল্লেখ করেছি তার সাথে আমি পরিচিত নই (যদিও আমি আগে বিজ্ঞানীদের বিট ব্যবহার করেছি)।


3
NLTK এর জন্য +1। অ্যালভিয়ার গ্রিসেল যিনি মেশিন লার্নিং গবেষণা এবং প্রাকৃতিক ভাষা প্রসেসিং করছেন তাদের ওয়েবে কিছু ভাল টিউটোরিয়াল এবং স্লাইড রয়েছে। উদাহরণস্বরূপ, আমি এনএলটিকে এবং সাইকিট- লার্ন (পাইকন এফআর 2010) সহ স্ট্যাটিস্টিকাল লার্নিং এবং পাঠ্য শ্রেণিবিন্যাসের কথা ভাবতে পারি ।
chl

@ কচি এই টিউটোরিয়ালের জন্য ধন্যবাদ, আমি কিছুটা আশপাশে হাঁপিয়ে যাচ্ছিলাম এবং মনে হচ্ছে সে খুব সুন্দর উপাদান পেয়েছে। এছাড়াও তার স্লাইডগুলিতে হিটম্যাপ সহ একটি বিভ্রান্তির ম্যাট্রিক্স প্রদর্শন করে;)
জেএমএস

9

পাইথনের বিস্তৃত এমএল লাইব্রেরি রয়েছে (পাশাপাশি mloss.org দেখুন)। যাইহোক, আমার সর্বদা অনুভূতি থাকে যে এমএল গবেষকদের ক্ষেত্রে এটি এমএল অনুশীলনকারীদের চেয়ে বেশি ব্যবহার হয়।

Numpy / SciPy এবং matplotlib পাইথন সঙ্গে বৈজ্ঞানিক কাজের জন্য চমৎকার সরঞ্জাম। আপনি নিজেই বেশিরভাগ গণিত সূত্র হ্যাক করতে ভয় পান না, আপনি হতাশ হবেন না। এছাড়াও, জিপিইউকে চুদামাত বা জিম্পি দিয়ে ব্যবহার করা খুব সহজ - এর আগে কয়েক দিন সময় নেওয়া পরীক্ষাগুলি এখন কয়েক ঘন্টা বা কয়েক মিনিটের মধ্যেই শেষ হয়।

ব্লকের সর্বশেষতম বাচ্চা সম্ভবত থিয়ানো । এটি গাণিতিক প্রকাশের জন্য একটি প্রতীকী ভাষা যা Opmitimzations, GPU বাস্তবায়ন এবং -ber- বৈশিষ্ট্য স্বয়ংক্রিয় পার্থক্য সহ আসে যা গ্রেডিয়েন্ট ভিত্তিক পদ্ধতির জন্য দুর্দান্ত কিছু নয়।

এছাড়াও, আমি যতদূর জানি জেএমএস দ্বারা উল্লিখিত এনএলটিকে মূলত সেখানে ওপেন সোর্স প্রাকৃতিক ভাষার গ্রন্থাগার।

পাইথন মেশিন লার্নিংয়ের সঠিক সরঞ্জাম right


8

আমাকে কমলা দেওয়ার পরামর্শ দিন

ব্যাপক

হ্যাঁ

স্কেলেবল (100 ক বৈশিষ্ট্য, 10 কে উদাহরণ)

হ্যাঁ

পাইথনে এমএল করার জন্য ভাল লাইব্রেরি আছে?

হ্যাঁ

শ্রেণিবদ্ধের বৈশিষ্ট্য, বৈশিষ্ট্য নির্বাচনের পদ্ধতিগুলি (ইনফরমেশন গেইন, চি-স্কোয়াড ইত্যাদি),

এই সবগুলি কমলা রঙের বাক্সের বাইরে কাজ করে

এবং পাঠ্য প্রাক-প্রক্রিয়াজাতকরণ ক্ষমতা (স্টেমিং, স্টপওয়ার্ড অপসারণ, টিএফ-আইডিএফ ইত্যাদি)।

যদিও আমি টেক্সট প্রসেসিংয়ের জন্য কমলা ব্যবহার করি নি


কমলা জন্য +1। তাদের দুর্দান্ত দস্তাবেজ রয়েছে যা দেখায় কীভাবে দ্রুত গতি বাড়ানো যায় এবং আপনি তাদের ভিজ্যুয়াল-প্রোগ্রামিং জিইউআই বা পাইথন থেকে লাইব্রেরি কল করতে পারেন।
জোশ হেম্যান

4

এটি বিশেষভাবে কার্যকর কিনা তা নিশ্চিত নন তবে প্রোগ্রামাররা অনলাইনে উপলব্ধ পাইথনের পরিসংখ্যান শিখার জন্য একটি গাইড রয়েছে। http://www.greenteapress.com/thinkstats/

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


3

পরীক্ষা করে দেখুন libsvm


4
libsvm বিশাল সংখ্যক বৈশিষ্ট্য এবং নমুনাগুলিতে ভাল স্কেল করে না। একই লেখকদের দ্বারা ভাল ব্যবহারের লাইবলাইনার। লিনিয়ার মডেলগুলি সাধারণত উচ্চ মাত্রিক স্থানে যথেষ্ট ভাল।
ogrisel

সাইবিটস-লার্ন এবং অরেঞ্জ উভয়ের জন্যই কি এসএমএম ইঞ্জিনটি লিবিএসভিএম নয়? বা লিনিয়ার ক্ষেত্রে তারা কি সত্যিই লাইবলাইনারে ফিরে যায়?
জন রবার্টসন



1

@Ogrisel হাইলাইট হিসাবে, পাইথনের জন্য সাইকিট-লার্ন অন্যতম সেরা মেশিন লার্নিং প্যাকেজ। এটি 100 কে (স্পার্স) বৈশিষ্ট্য এবং 10 কে স্যাম্পল হিসাবে ছোট ডেটা-সেটগুলির জন্য এবং এমনকি 200k সারি হতে পারে এমন প্রান্তিক আকারে বড় ডেটা-সেটগুলির জন্য এটি উপযুক্ত। মূলত, কোনও ডেটাসেট যা মেমরিতে ফিট করে।

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

  1. স্কেলিবিলিটি: আপনার ডেটাসেট যদি স্মৃতিতে ফিট করতে পারে তবে সাইকিট-লার্ন আপনার পছন্দ হওয়া উচিত। যদি এটি মেমোরিতে ফিট না হয় তবে স্পার্কটি যাওয়ার উপায়। এখানে লক্ষণীয় গুরুত্বপূর্ণ বিষয় হ'ল স্পার্ক কেবল একটি বিতরণ সেটিংয়ে দ্রুত কাজ করে।

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

এক্সট্রাক্টিং, ট্রান্সফর্মিং এবং স্পার্ক মলিবের বৈশিষ্ট্য নির্বাচন করা

  1. শ্রেণিবদ্ধকরণ : স্পার্ক মলিবের সমস্ত বড় অ্যালগোরিদমের বাস্তবায়ন রয়েছে যা আপনি বেশিরভাগ সময় ব্যবহার করতেন (পাঠ্য শ্রেণীবদ্ধের জন্য ভালভাবে কাজ করা অ্যালগোস সহ)। মোলিবের মাধ্যমে কি কি অ্যালগরিদমগুলি পাওয়া যায় তার বিশদ পর্যালোচনা করার জন্য নীচের লিঙ্কটি দেখুন।

মেলিব শ্রেণিবদ্ধকরণ এবং প্রতিরোধ

বোনাস: অ্যাপাচি স্পার্কের পাইথন, আর, জাভা এবং স্কালার জন্য সমর্থন রয়েছে। সুতরাং, আগামীকাল যদি আপনি কোনও ভিন্ন ভাষা নিয়ে পরীক্ষা করার সিদ্ধান্ত নেন (ব্যক্তিগত পছন্দ হিসাবে বা পেশাদার কারণে), আপনাকে সম্পূর্ণ নতুন কাঠামো শিখতে হবে না।


0

আপনি এখনও কিছু পরামর্শ খুঁজছেন কিনা তা আমি জানি না (আপনি 5 মাস আগে এই প্রশ্নটি করেছিলেন ...)। আমি এই বইটি সবে শুরু করেছি এবং এখনও পর্যন্ত এটি বেশ ভাল:

https://www.amazon.com.mx/dp/1491962291/ref=cm_cr_ryp_prd_ttl_sol_3

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

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