বৈশিষ্ট্য-ইঞ্জিনিয়ারিংয়ের উপযোগিতা: বিদ্যমান বৈশিষ্ট্যগুলির উপর ভিত্তি করে নতুন বৈশিষ্ট্যগুলি কেন তৈরি করবেন?


30

আমি প্রায়শই দেখতে পাই যে লোকেরা মেশিন লার্নিংয়ের সমস্যায় বিদ্যমান বৈশিষ্ট্যগুলির ভিত্তিতে নতুন বৈশিষ্ট্য তৈরি করে। উদাহরণস্বরূপ, এখানে: https://triangleinequality.wordpress.com/2013/09/08/basic-feature-engineering-with-the-titanic-data/ ব্যক্তি একটি ব্যক্তির পরিবারের আকারকে নতুন বৈশিষ্ট্য হিসাবে বিবেচনা করেছে ভাই, বোন এবং পিতামাতার সংখ্যার উপর, যা বিদ্যমান বৈশিষ্ট্যগুলি ছিল।

তবে এর মানে কী? পারস্পরিক সম্পর্কযুক্ত নতুন বৈশিষ্ট্যগুলি কেন কার্যকর তা আমি বুঝতে পারি না। এটি নিজেই করা অ্যালগরিদমের কাজ নয়?


উত্তর:


30

এটি চিত্রিত করার জন্য সবচেয়ে সাধারণ উদাহরণটি হ'ল এক্সওআর সমস্যা (নীচের চিত্রটি দেখুন)। ভাবুন যে আপনাকে এবং y সমন্বিত ডেটা এবং বাইনারি ক্লাস দ্বারা পূর্বাভাস দেওয়া হবে। আপনি নিজের মেশিন লার্নিং অ্যালগরিদমটি নিজেই সঠিক সিদ্ধান্তের সীমানা নির্ধারণের জন্য আশা করতে পারেন, তবে আপনি যদি অতিরিক্ত বৈশিষ্ট্য z = x y উত্পন্ন করেন তবে সমস্যাটি তুচ্ছ হয়ে উঠবে কারণ z > 0 আপনাকে শ্রেণিবিন্যাসের জন্য প্রায় নিখুঁত সিদ্ধান্তের মানদণ্ড দেয় এবং আপনি কেবল সহজ ব্যবহার করেছেন গাণিতিক!xyz=xyz>0

XOR problem

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

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

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

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


আপনাকে ধন্যবাদ, এটি খুব ভালভাবে ব্যাখ্যা করা হয়েছে এবং খুব আকর্ষণীয়!
ম্যাথিউ ভেরন

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

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

অবশ্যই আমি আপনার বিষয়গুলির সাথে একমত। প্রথমত, সেই আরএফস একটি নির্দিষ্ট ধরণের ইন্টারঅ্যাকশনগুলির মডেল করে (আপনার অর্থ মূলত x * y?)। দ্বিতীয়ত, এই বৈশিষ্ট্য প্রকৌশল অবশ্যই কেবল মিথস্ক্রিয়া সম্পর্কে নয়।
কবি মওদিত

14

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

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

সংক্ষেপে, যদি ডোমেন জ্ঞান ইঙ্গিত দেয় যে বৈশিষ্ট্যগুলির একটি হস্ত-কারুকৃত অ-রৈখিক সংমিশ্রণ তথ্যবহুল হতে পারে, তবে বিদ্যমান বৈশিষ্ট্যগুলির সেটগুলিতে এটি যুক্ত করা বুদ্ধিমান হয়ে যায়।


ঠিক আছে আমি বুঝতে পারছি ! তবে আমি কীভাবে জানতে পারি যে আমার তৈরি করা বৈশিষ্ট্যগুলি অর্থবহ এবং তথ্যপূর্ণ কিনা? আমি বলতে চাইছি, সমস্যার পাল্টা স্বজ্ঞাত ব্যাখ্যা থাকতে পারে। আমি যা বুঝি সেগুলি থেকে বৈশিষ্ট্যগুলি তৈরি করা আলগরিদমকে এক দিকে চালিত করার, তার পূর্বাভাসের সময় সাশ্রয় করার একটি উপায়। সুতরাং কয়েকটি উপায়ে, আমরা অ্যালগরিদমকে প্রভাবিত করছি। কীভাবে যাচাই করব যে আমরা সঠিকভাবে প্রভাবিত করেছি?
ম্যাথিউ ভেরন

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

1
তবুও, এটি একটি বিজ্ঞানের চেয়ে শিল্পের বেশি। শেষে, আপনাকে একটি নিরপেক্ষ পরীক্ষামূলক পরীক্ষামূলক প্রোটোকল দিয়ে একটি পরীক্ষার সেটগুলিতে আপনার মডেলগুলি পরীক্ষা করে আপনার হাতের তৈরি কারিগরিটির বৈশিষ্ট্যগুলি কার্যকর করতে হবে ...
ড্যানিয়েল ল্যাপেজ

3

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

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

Circle Boundary

যদি আপনাকে কেবল দুটি বৈশিষ্ট্য দেওয়া হয়, এক্স1 এবং এক্স2। একটি সাধারণ রৈখিক মডেলY=এক্স0+ +1এক্স1+ +2এক্স2লক্ষ্য ভেরিয়েবলকে শ্রেণিবদ্ধ করার কোনও উপায় খুঁজে পাবেন না। সুতরাং, পরিবর্তে, অ-রৈখিকতা ক্যাপচার জন্য আপনার নতুন কোয়ার্টিক বৈশিষ্ট্য প্রয়োজন:Y=এক্স0+ +1এক্স12+ +2এক্স22

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

  2. In the real world, you won't get a single dataset like Kaggle provides. Instead, you get information from all over the place. For example, if you want to predict customer attrition for an online retail company like Amazon, you have customer demography info, purchase transaction info. You need to generate a lot of feature from different sources, in this case, You will find a lot of useful features can be obtained/aggregated from the transaction level. As Andrew Ng puts it: Often times, the ability to do feature-engineering defines the success or failure of a machine learning project.

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