পূর্বাভাস লিঙ্ক করার একটি গাইড - ফেসবুকে আপনার ভবিষ্যত সংযোগগুলি কীভাবে পূর্বাভাস দেওয়া যায়

সংক্ষিপ্ত বিবরণ

  • পূর্বাভাস লিঙ্ক করার একটি ভূমিকা, এটি কীভাবে কাজ করে এবং কোথায় আপনি এটি বাস্তব-বিশ্বে ব্যবহার করতে পারেন
  • লিংক প্রেডিকশনটির গুরুত্ব সম্পর্কে সোশ্যাল মিডিয়ায় জানুন
  • পাইথন ব্যবহার করে ফেসবুক ব্যবহারের ক্ষেত্রে আপনার প্রথম লিঙ্ক প্রেডিকশন মডেল তৈরি করুন

ভূমিকা

আপনি কি কখনও ভেবে দেখেছেন আপনার পরবর্তী ফেসবুক সংযোগটি কে হতে পারে? পরের অনুরোধটি কার কাছ থেকে আসতে পারে জানতে আগ্রহী?

যদি আমি আপনাকে বলি যে এটির পূর্বাভাস দেওয়ার কোনও উপায় আছে?

আমি যখন আমার ফেসবুক অ্যাকাউন্টের মাধ্যমে ব্রাউজ করছি তখন আমি মস্তিষ্কে ঝাপটানো এবং এই সমস্যার বিবৃতি নিয়ে আসতে পছন্দ করি। এটি একটি ডেটা বিজ্ঞানীর মানসিকতা থাকার অন্যতম সুবিধা!

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

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

গ্রাফগুলি কী এবং কীভাবে তারা কাজ করে তা ঝুলতে পেতে আমি নীচের নিবন্ধগুলিতে যাওয়ার পরামর্শ দিই:

সুচিপত্র

  1. সামাজিক নেটওয়ার্ক বিশ্লেষণের একটি ওভারভিউ
  2. লিঙ্ক প্রডিকশন অন প্রাইমার
  3. একটি লিঙ্ক প্রেডিকশন সমস্যা সমাধানের কৌশল
  4. কেস স্টাডি: ফেসবুক পৃষ্ঠাগুলির মধ্যে ভবিষ্যতের সংযোগের পূর্বাভাস - ডেটা বোঝা - ডেটাসেট প্রস্তুতি মডেল বিল্ডিং - বৈশিষ্ট্য নিষ্কাশন - মডেল বিল্ডিং: লিঙ্ক প্রেডিকশন মডেল

সামাজিক নেটওয়ার্ক বিশ্লেষণের একটি ওভারভিউ

লিঙ্ক পূর্বাভাসের ধারণাটিতে ডুব দেওয়ার আগে প্রথমে একটি সামাজিক নেটওয়ার্ক সংজ্ঞায়িত করা যাক।

একটি সামাজিক নেটওয়ার্ক মূলত সামাজিক সত্তা, যেমন মানুষ, সংগঠন, সরকার, রাজনৈতিক দল ইত্যাদির মধ্যে সম্পর্কের প্রতিনিধিত্ব করে network

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

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

সামাজিক নেটওয়ার্ক বিশ্লেষণের সুবিধাগুলি অত্যন্ত ফলপ্রসূ হতে পারে। এখানে কয়েকটি মূল সুবিধা রয়েছে:

  • আপনাকে আপনার শ্রোতাদের আরও ভালভাবে বুঝতে সহায়তা করে
  • গ্রাহক বিভাজন জন্য ব্যবহৃত
  • সুপারিশ সিস্টেম ডিজাইন করতে ব্যবহৃত হয়
  • অন্যান্য জিনিসগুলির মধ্যে জাল সংবাদগুলি সনাক্ত করুন

লিঙ্ক প্রডিকশন অন প্রাইমার

লিংক পূর্বাভাস গ্রাফ এবং নেটওয়ার্কের ক্ষেত্রে অন্যতম গুরুত্বপূর্ণ গবেষণা বিষয়। লিঙ্ক পূর্বাভাসের উদ্দেশ্য হ'ল এমন নোডগুলির শনাক্তকরণ যা ভবিষ্যতে হয় কোনও লিঙ্ক গঠন করবে বা না।

রিয়েল-ওয়ার্ল্ড অ্যাপ্লিকেশনগুলিতে লিঙ্কের পূর্বাভাসের প্রচুর পরিমাণ ব্যবহার রয়েছে। এখানে লিঙ্কের পূর্বাভাসের গুরুত্বপূর্ণ ব্যবহারের কয়েকটি বিষয় রয়েছে:

  • ভবিষ্যদ্বাণী করুন কোন গ্রাহকরা অ্যামাজনের মতো অনলাইন বাজারে কোন পণ্যগুলি কিনতে পারবেন buy এটি আরও ভাল পণ্য সুপারিশ করতে সহায়তা করতে পারে
  • কোনও সংস্থার কর্মচারীদের মধ্যে মিথস্ক্রিয়া বা সহযোগিতার পরামর্শ দিন
  • সন্ত্রাসী নেটওয়ার্কগুলি থেকে গুরুত্বপূর্ণ অন্তর্দৃষ্টিগুলি বের করুন Ext

এই নিবন্ধে, আমরা লিঙ্ক পূর্বাভাসের কিছুটা আলাদা ব্যবহারের ক্ষেত্রে অন্বেষণ করব - একটি অনলাইন সামাজিক নেটওয়ার্কের লিঙ্কগুলির পূর্বাভাস দেওয়া!

একটি লিঙ্ক প্রেডিকশন সমস্যা সমাধানের কৌশল

যদি আমরা কোনও উপায়ে একটি সেটযুক্ত কাঠামোগত ডেটাসেট আকারে কোনও গ্রাফকে উপস্থাপন করতে পারি তবে আমরা সম্ভবত গ্রাফের সংযোগযুক্ত নোড-জোড়াগুলির মধ্যে লিঙ্কগুলির গঠনের পূর্বাভাস দিতে মেশিন লার্নিং ব্যবহার করতে পারি।

আসুন এই ধারণাটি বোঝার জন্য একটি ডামি গ্রাফ নেওয়া যাক। নীচে একটি 7 নোড গ্রাফ দেওয়া আছে এবং সংযুক্ত নোড-জোড়া এএফ, বিডি, বিই, বিজি এবং ইজি রয়েছে:

সময় গ্রাফ টি

এখন, আসুন আমরা ডেটা বিশ্লেষণ করি এবং নীচের গ্রাফটি নিয়ে এসেছি। কয়েকটি নতুন সংযোগ তৈরি করা হয়েছে (লিঙ্কগুলিতে লাল):

সময় গ্রাফ টি + এন

আমাদের যেকোন ধরণের মেশিন লার্নিং মডেল তৈরি করতে প্রিডেক্টর ভেরিয়েবলের একটি সেট এবং টার্গেট ভেরিয়েবল থাকা দরকার, তাই না? তাহলে এই ভেরিয়েবলগুলি কোথায়? ঠিক আছে, আমরা এটি গ্রাফ থেকেই পেতে পারি! দেখা যাক এটি কীভাবে সম্পন্ন হয়।

আমাদের উদ্দেশ্যটি কোনও 2 সংযুক্ত নোডের মধ্যে কোনও লিঙ্ক থাকবে কিনা তা অনুমান করা be সময়ে সময়ে নেটওয়ার্ক থেকে, আমরা নিম্নলিখিত নোড জোড়াগুলি বের করতে পারি যার মধ্যে কোনও লিঙ্ক নেই:

  1. এ এফ
  2. বিডি
  3. থাকা
  4. বিজি
  5. ই জি

দয়া করে নোট করুন, সুবিধার জন্য, আমি কেবলমাত্র সেই নোডগুলি বিবেচনা করেছি যা কয়েকটি লিঙ্কের বাইরে রয়েছে।

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

সময় গ্রাফ তাকান t + n। আমরা দেখতে পাচ্ছি এএফ, বিডি এবং বিই জোড়গুলির জন্য নেটওয়ার্কে তিনটি নতুন লিঙ্ক রয়েছে। অতএব, আমরা তাদের প্রত্যেককে একটি করে একটি মান নির্ধারণ করব 1 নোড জোড় বিজি এবং ইজি 0 নির্ধারিত হবে কারণ নোডগুলির মধ্যে এখনও কোনও লিঙ্ক নেই।

অতএব, তথ্যগুলি এর মতো দেখাবে:

এখন আমাদের টার্গেট ভেরিয়েবল রয়েছে, আমরা লিঙ্কের পূর্বাভাসটি সম্পাদন করতে এই ডেটা ব্যবহার করে একটি মেশিন লার্নিং মডেল তৈরি করতে পারি।

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

আপনার মডেলটি তৈরির জন্য কোনও গ্রাফ থেকে ডেটা উত্তোলন করুন

উপরের বিভাগে, আমরা টার্গেট ভেরিয়েবলের জন্য লেবেল পেতে সক্ষম হয়েছি কারণ আমাদের সময় t + n এ গ্রাফটিতে অ্যাক্সেস ছিল। তবে, বাস্তব-জগতের পরিস্থিতিতে আমাদের হাতে একটি গ্রাফ ডেটাসেট থাকবে। এটাই!

ধরা যাক আমাদের একটি সোশ্যাল নেটওয়ার্কের নীচের গ্রাফ রয়েছে যেখানে নোড ব্যবহারকারী এবং প্রান্তগুলি একরকম সম্পর্কের প্রতিনিধিত্ব করে:

প্রার্থী নোড জোড়া, যা ভবিষ্যতের সময়ে একটি লিঙ্ক তৈরি করতে পারে, হ'ল (1 & 2), (2 & 4), (5 এবং 6), (8 এবং 10), এবং আরও। আমাদের এমন একটি মডেল তৈরি করতে হবে যা পূর্বাভাস দেবে যে এই নোড জোড়াগুলির মধ্যে কোনও লিঙ্ক থাকবে কিনা। লিঙ্কের ভবিষ্যদ্বাণীটি এটাই!

তবে, লিঙ্কের পূর্বাভাস মডেলটি তৈরি করতে, এই গ্রাফের বাইরে আমাদের একটি প্রশিক্ষণ ডেটাসেট প্রস্তুত করা দরকার। এটি একটি সাধারণ কৌশল ব্যবহার করে করা যেতে পারে।

এটি চিত্র - এই গ্রাফটি অতীতের কোনও সময়ে কেমন লাগত? নোডগুলির মধ্যে কম কিনারা থাকবে কারণ একটি সামাজিক নেটওয়ার্কের সংযোগগুলি ধীরে ধীরে সময়ের সাথে নির্মিত হয়।

সুতরাং, এটি মাথায় রেখে, আমরা এলোমেলোভাবে প্রদত্ত গ্রাফ থেকে কয়েকটি প্রান্তটি আড়াল করতে পারি এবং তারপরে প্রশিক্ষণ ডেটাসেট তৈরির জন্য পূর্ববর্তী বিভাগে বর্ণিত একই কৌশলটি অনুসরণ করতে পারি।

গ্রাফ থেকে লিঙ্ক বন্ধ বন্ধ

লিঙ্কগুলি বা প্রান্তগুলি সরানোর সময়, আমাদের এমন কোনও প্রান্ত অপসারণ করা উচিত যা বিচ্ছিন্ন নোড (কোনও প্রান্ত ছাড়াই নোড) বা বিচ্ছিন্ন নেটওয়ার্ক তৈরি করতে পারে। আসুন আমাদের নেটওয়ার্ক থেকে কিছু প্রান্তটি বন্ধ করে দিন:

আপনি দেখতে পাচ্ছেন যে নোড জোড়া (1 & 4), (7 এবং 9) এবং (3 এবং 8) এর প্রান্তগুলি সরানো হয়েছে।

উত্তোলিত ডেটাতে লেবেল যুক্ত করুন

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

লক্ষ্য ভেরিয়েবলটি এই ডেটাসেটে অত্যন্ত ভারসাম্যহীন হবে। রিয়েল-ওয়ার্ল্ড গ্রাফগুলিতেও আপনি এর মুখোমুখি হবেন। সংযুক্ত নোড জোড়ার সংখ্যা বিশাল হবে।

আসুন একটি কেস স্টাডি গ্রহণ করি এবং পাইথন ব্যবহার করে লিঙ্কের পূর্বাভাসের সমস্যাটি সমাধান করি।

কেস স্টাডি: ফেসবুক পৃষ্ঠাগুলির মধ্যে ভবিষ্যতের সংযোগের পূর্বাভাস

এখানেই আমরা উপরের সমস্তটিকে একটি দুর্দান্ত এক বাস্তব-জগতের দৃশ্যে প্রয়োগ করব।

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

আপনি এখান থেকে ডেটাসেটটি ডাউনলোড করতে পারেন।

উদ্দেশ্য: সংযুক্ত নোডের (ফেসবুক পৃষ্ঠাগুলি) মধ্যে ভবিষ্যতের লিঙ্কগুলি (পারস্পরিক পছন্দগুলি) পূর্বাভাস দেওয়ার জন্য একটি লিঙ্ক পূর্বাভাস মডেল তৈরি করুন।

আসুন আমাদের জুপিটার নোটবুক (বা কোলাব) জ্বালিয়ে দিন!

ডেটা বোঝা

আমরা প্রথমে সমস্ত প্রয়োজনীয় গ্রন্থাগার এবং মডিউল আমদানি করব:

প্রান্ত হিসাবে পৃষ্ঠাগুলির মধ্যে নোড এবং পারস্পরিক পছন্দ হিসাবে ফেসবুক পৃষ্ঠাগুলি লোড করুন:

আউটপুট: (620, 2102)

আমাদের কাছে 620 নোড এবং 2,102 টি লিঙ্ক রয়েছে। আসুন এখন সমস্ত নোডের ডেটাফ্রেম তৈরি করি। এই ডেটাফ্রেমের প্রতিটি সারি যথাক্রমে কলাম 'নোড_1' এবং 'নোড_2' এ নোড দ্বারা গঠিত একটি লিঙ্ক উপস্থাপন করে:

fb_df.head ()

নোড '276', '58', '132', '603' এবং '398' নোড '0' এর সাথে লিঙ্ক তৈরি করে। আমরা সহজেই একটি গ্রাফ আকারে ফেসবুক পৃষ্ঠাগুলির এই বিন্যাসটি উপস্থাপন করতে পারি:

বাহ, বেশ কিছু দেখাচ্ছে। এটিই আমরা মোকাবিলা করতে যাচ্ছি - ফেসবুক পৃষ্ঠাগুলির একটি তারের জাল (নীল বিন্দু)। কালো রেখাগুলি হ'ল লিঙ্ক বা প্রান্ত যা সমস্ত নোডকে একে অপরের সাথে সংযুক্ত করে।

মডেল বিল্ডিংয়ের জন্য ডেটাসেট প্রস্তুতি

আমাদের একটি অপরিবর্তিত গ্রাফ থেকে ডেটাসেট প্রস্তুত করতে হবে। এই ডেটাসেটে নোড জোড়গুলির বৈশিষ্ট্য থাকবে এবং লক্ষ্য পরিবর্তনশীলটি বাইনারি প্রকৃতির হবে যা লিঙ্কগুলির উপস্থিতি (বা না) নির্দেশ করে।

সংযুক্ত নোড পেয়ারগুলি পুনরুদ্ধার করুন - নেতিবাচক নমুনা

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

প্রথমে আমরা কোন জোড়া নোড সংযুক্ত নেই তা সন্ধান করার জন্য একটি সংলগ্ন ম্যাট্রিক্স তৈরি করব।

উদাহরণস্বরূপ, নীচের গ্রাফের সংলগ্নতা একটি বর্গ ম্যাট্রিক্স যেখানে সারি এবং কলামগুলি গ্রাফের নোডগুলি দ্বারা প্রতিনিধিত্ব করে:

লিঙ্কগুলি ম্যাট্রিক্সের মানগুলি দ্বারা চিহ্নিত করা হয়। 1 এর অর্থ নোড জুটির মধ্যে একটি লিঙ্ক রয়েছে এবং 0 এর অর্থ নোড জোড়ার মধ্যে একটি লিঙ্ক রয়েছে। উদাহরণস্বরূপ, ম্যাট্রিক্সের ক্রস-জংশনে 1 এবং 3 নোডের 0 থাকে এবং এই নোডগুলির উপরের গ্রাফের কোনও প্রান্তও নেই।

আমরা আসল ম্যাট্রিক্সের এই সম্পত্তিটি মূল গ্রাফ জি থেকে সমস্ত সংযোগযুক্ত নোড জোড়া খুঁজে পেতে ব্যবহার করব:

আসুন সংলগ্ন ম্যাট্রিক্সের আকারটি পরীক্ষা করে দেখুন:

adj_G.shape

আউটপুট: (620, 620)

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

আমরা হয় তির্যক (সবুজ অংশ) এর উপরের মানগুলি বা নীচের মানগুলি (লাল অংশ) অনুসন্ধান করতে পারি। আসুন শূন্যের জন্য তির্যক মানগুলি অনুসন্ধান করুন:

আমাদের ডেটাসেটে আমাদের সংযুক্ত কতগুলি নোড জোড় রয়েছে তা এখানে:

LEN (all_unconnected_pairs)

আউটপুট: 19,018

আমাদের 19,018 টি সংযোগযুক্ত জোড়া রয়েছে। এই নোড জোড়া লিঙ্ক প্রেডিকশন মডেল প্রশিক্ষণের সময় নেতিবাচক নমুনা হিসাবে কাজ করবে। আসুন এই জোড়াগুলি একটি ডেটাফ্রেমে রাখি:

সংযুক্ত নোড পেয়ারগুলি থেকে লিঙ্কগুলি সরান - ইতিবাচক নমুনা

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

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

অবশেষে, আমরা নোড জোড়গুলির একটি তালিকা পাব যা গ্রাফ থেকে ফেলে দেওয়া যেতে পারে এবং সমস্ত নোড এখনও অক্ষত থাকবে:

LEN (omissible_links_index)

আউটপুট: 1483

আমাদের গ্রাফ থেকে বাদ দিতে পারে এমন 1400 টিরও বেশি লিঙ্ক রয়েছে। এই বাদ দেওয়া প্রান্তগুলি লিঙ্ক পূর্বাভাস মডেল প্রশিক্ষণের সময় ইতিবাচক প্রশিক্ষণের উদাহরণ হিসাবে কাজ করবে।

মডেল প্রশিক্ষণের জন্য ডেটা

এরপরে, আমরা এই অপসারণযোগ্য প্রান্তগুলি সংযুক্ত নোড জোড়াগুলির ডেটাফ্রেমে যুক্ত করব। যেহেতু এই নতুন প্রান্তগুলি ধনাত্মক নমুনা, তাই তাদের লক্ষ্যমাত্রা '1' থাকবে:

আসুন লক্ষ্য ভেরিয়েবলের মানগুলির বিতরণ পরীক্ষা করে দেখুন:

তথ্য [ 'লিঙ্কটি']। value_counts ()

0 -19018 1 -1483

দেখা যাচ্ছে যে এটি অত্যন্ত ভারসাম্যহীন ডেটা। লিঙ্ক বনাম কোনও লিঙ্কের অনুপাত মাত্র 8% এর কাছাকাছি। পরবর্তী বিভাগে, আমরা এই সমস্ত নোড জোড়গুলির জন্য বৈশিষ্ট্যগুলি বের করব।

বৈশিষ্ট্য নিষ্কাশন

লিঙ্কগুলি বাদ দেওয়ার পরে আমরা গ্রাফ থেকে নোড বৈশিষ্ট্যগুলি বের করতে নোড 2 ওয়েভ অ্যালগরিদম ব্যবহার করব। সুতরাং, অপসারণযোগ্য লিঙ্কগুলি ফেলে দেওয়ার পরে প্রথমে একটি নতুন গ্রাফ তৈরি করা যাক:

এর পরে, আমরা নোড 2vec লাইব্রেরি ইনস্টল করব। এটি ডিপওয়াক অ্যালগরিদমের সাথে বেশ মিল। তবে এটিতে পক্ষপাতদুষ্ট এলোমেলো পদচারণা জড়িত। নোড 2 ওয়েভ সম্পর্কে আরও জানতে, আপনার অবশ্যই এই কাগজটি নোড 2vec পরীক্ষা করা উচিত: নেটওয়ার্কগুলির জন্য স্কেলযোগ্য বৈশিষ্ট্য শিখন।

আপাতত, কেবল গ্রাহকের নোডের ভেক্টর উপস্থাপনের জন্য নোড 2 ওয়েভ ব্যবহার করা হবে তা মনে রাখবেন। আসুন এটি ইনস্টল করুন:

! পাইপ ইনস্টল নোড 2vec

আপনার স্থানীয় মেশিনে ইনস্টল হতে কিছুক্ষণ সময় লাগতে পারে (আপনি যদি কলাব ব্যবহার করছেন তবে এটি বেশ দ্রুত)।

এখন, আমরা আমাদের গ্রাফের নোড 2vec মডেলটি প্রশিক্ষণ দেব (G_data):

এরপরে, আমরা ডেটাফ্রেম 'ডেটা'র প্রতিটি নোড জোড়ের উপর প্রশিক্ষিত নোড 2 ওয়েভ মডেল প্রয়োগ করব। একটি জুড়ি বা একটি প্রান্তের বৈশিষ্ট্যগুলি গণনা করতে, আমরা সেই জোড়ের নোডের বৈশিষ্ট্যগুলি যুক্ত করব:

x = [(n2w_model [str (i)] + n2w_model [str (j)]) i, jip in জিপ (ডেটা ['নোড_1'], ডেটা ['নোড_2'])]

আমাদের লিঙ্ক প্রেডিকশন মডেল বিল্ডিং

আমাদের মডেলের কর্মক্ষমতা যাচাই করতে, আমাদের আমাদের ডেটা দুটি ভাগে ভাগ করা উচিত - একটি মডেলকে প্রশিক্ষণের জন্য এবং অন্যটি মডেলটির কার্যকারিতা পরীক্ষা করার জন্য:

প্রথমে একটি লজিস্টিক রিগ্রেশন মডেল ফিট করি:

আমরা এখন পরীক্ষার সেটে ভবিষ্যদ্বাণী করব:

পূর্বাভাস = lr.predict_proba (এক্সটেস্ট)

আমরা আমাদের মডেলের কর্মক্ষমতা যাচাই করতে এওসি-আরওসি স্কোরটি ব্যবহার করব।

roc_auc_score (সর্বশেষ, পূর্বাভাস [:, 1])

আউটপুট: 0.7817

আমরা একটি লজিস্টিক রিগ্রেশন মডেল ব্যবহার করে 0.78 এর স্কোর পাই। আসুন দেখুন আরও জটিল মডেল ব্যবহার করে আমরা আরও ভাল স্কোর পেতে পারি কিনা Let's

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

শেষ নোটস

গ্রাফগুলিতে প্রচুর সম্ভাবনা রয়েছে। আমরা বিপুল সংখ্যক বাস্তব-বিশ্ব সমস্যা সমাধানের জন্য এটি ব্যবহার করতে পারি, যার মধ্যে লিঙ্কের পূর্বাভাস এক।

এই নিবন্ধে আমরা মেশিন লার্নিং ব্যবহার করে কীভাবে একটি লিঙ্ক পূর্বাভাস সমস্যা মোকাবেলা করা যেতে পারে তা দেখিয়েছি এবং এই জাতীয় সমস্যা সমাধানের সময় আমাদের সীমাবদ্ধতা এবং গুরুত্বপূর্ণ দিকগুলি কী মনে রাখতে হবে।

কোন প্রশ্ন জিজ্ঞাসা করতে বা নিচের মন্তব্য বিভাগে আপনার প্রতিক্রিয়া ছেড়ে নির্দ্বিধায় দয়া করে। অন্বেষণ চালিয়ে যান!

মূলত https://www.analyticsvidhya.com এ 16 জানুয়ারী 2020 এ প্রকাশিত।

আরো দেখুন

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