কনসোল ব্যবহার করে ক্রেডিট কার্ড লেনদেনে জালিয়াতি সনাক্তকরণের জন্য Bigquery ML

১. ভূমিকা

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

আপনি যা শিখবেন

  • Bigquery-তে উপলব্ধ ডেটা অন্বেষণ করুন
  • কনসোল ব্যবহার করে Bigquery-তে SQL দিয়ে একটি মডেল তৈরি করুন
  • তৈরি করা মডেলটির ফলাফল মূল্যায়ন করুন।
  • তৈরি করা মডেলের সাহায্যে কোনো লেনদেন জালিয়াতিপূর্ণ কিনা তা ভবিষ্যদ্বাণী করুন।

২. ডেটা সম্পর্কে

ডেটাসেটটিতে ২০১৩ সালের সেপ্টেম্বরে ইউরোপীয় কার্ডধারীদের দ্বারা ক্রেডিট কার্ডের মাধ্যমে করা লেনদেনগুলো রয়েছে। এই ডেটাসেটটি দুই দিনে সংঘটিত লেনদেনগুলো উপস্থাপন করে, যেখানে ২৮৪,৮০৭টি লেনদেনের মধ্যে ৪৯২টি জালিয়াতি রয়েছে। এটি অত্যন্ত ভারসাম্যহীন, ইতিবাচক শ্রেণিটি (জালিয়াতি) সমস্ত লেনদেনের ০.১৭২%।

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

  1. V1, V2, ... V28 বৈশিষ্ট্যগুলো হলো PCA-এর মাধ্যমে প্রাপ্ত প্রধান উপাদানসমূহ; একমাত্র 'সময়' এবং 'পরিমাণ' বৈশিষ্ট্যগুলোই PCA দ্বারা রূপান্তরিত হয়নি।
  2. 'Time' ফিচারে ডেটাসেটের প্রতিটি লেনদেন এবং প্রথম লেনদেনের মধ্যে অতিবাহিত সেকেন্ডের পরিমাণ থাকে।
  3. 'Amount' ফিচারটি হলো লেনদেনের পরিমাণ, এই ফিচারটি উদাহরণ-নির্ভর ব্যয়-সংবেদনশীল লার্নিং-এর জন্য ব্যবহার করা যেতে পারে।
  4. 'ক্লাস' ফিচারটি হলো রেসপন্স ভ্যারিয়েবল এবং এটি জালিয়াতির ক্ষেত্রে ১ এবং অন্যথায় ০ মান গ্রহণ করে।

বিগ ডেটা মাইনিং এবং জালিয়াতি শনাক্তকরণের উপর ওয়ার্ল্ডলাইন এবং ইউএলবি (ইউনিভার্সিটি লিব্রে ডি ব্রাসেলস)-এর মেশিন লার্নিং গ্রুপের ( http://mlg.ulb.ac.be ) একটি গবেষণা সহযোগিতার অংশ হিসেবে এই ডেটাসেটটি সংগ্রহ ও বিশ্লেষণ করা হয়েছে।

সম্পর্কিত বিষয়ে বর্তমান ও অতীতের প্রকল্পগুলোর আরও বিস্তারিত তথ্য https://www.researchgate.net/project/Fraud-detection-5 এবং DefeatFraud প্রকল্পের পাতায় পাওয়া যাবে।

উদ্ধৃতি:

আন্দ্রেয়া ডাল পোজোলো, অলিভিয়ের কায়েলেন, রিড এ. জনসন এবং জিয়ানলুকা বোনটেম্পি। ভারসাম্যহীন শ্রেণীকরণের জন্য আন্ডারস্যাম্পলিং ব্যবহার করে সম্ভাব্যতা ক্রমাঙ্কন। সিম্পোজিয়াম অন কম্পিউটেশনাল ইন্টেলিজেন্স অ্যান্ড ডেটা মাইনিং (সিআইডিএম), আইইইই, ২০১৫।

ডাল পোজোলো, আন্দ্রেয়া; কায়েলেন, অলিভিয়ের; লে বোর্ন, ইয়ান-এল; ওয়াটারশুট, সার্জ; বোনটেম্পি, জিয়ানলুকা। একজন অনুশীলনকারীর দৃষ্টিকোণ থেকে ক্রেডিট কার্ড জালিয়াতি সনাক্তকরণে অর্জিত শিক্ষা , এক্সপার্ট সিস্টেমস উইথ অ্যাপ্লিকেশনস, ৪১, ১০, ৪৯১৫-৪৯২৮, ২০১৪, পারগামন

ডাল পোজোলো, আন্দ্রেয়া; বোরাচ্চি, গিয়াকোমো; কায়েলেন, অলিভিয়ের; আলিপ্পি, সিজার; বোনটেম্পি, জিয়ানলুকা। ক্রেডিট কার্ড জালিয়াতি সনাক্তকরণ: একটি বাস্তবসম্মত মডেলিং এবং একটি অভিনব শিক্ষণ কৌশল, আইইইই ট্রানজ্যাকশনস অন নিউরাল নেটওয়ার্কস অ্যান্ড লার্নিং সিস্টেমস, ২৯, ৮, ৩৭৮৪-৩৭৯৭, ২০১৮, আইইইই

ডাল পোজোলো, আন্দ্রেয়া " ক্রেডিট কার্ড জালিয়াতি সনাক্তকরণের জন্য অভিযোজিত মেশিন লার্নিং" ইউএলবি এমএলজি পিএইচডি থিসিস (তত্ত্বাবধায়ক: জি. বোনটেম্পি)

কার্সিলো, ফ্যাব্রিজিও; ডাল পোজোলো, আন্দ্রেয়া; Le Borgne, Yann-Aël; ক্যালেন, অলিভিয়ার; মাজার, ইয়ানিস; বনটেম্পি, জিয়ানলুকা। স্কার্ফ: স্পার্ক, ইনফরমেশন ফিউশন, 41, 182-194,2018, এলসেভিয়ারের সাথে স্ট্রিমিং ক্রেডিট কার্ড জালিয়াতি সনাক্তকরণের জন্য একটি মাপযোগ্য কাঠামো

কারসিলো, ফ্যাব্রিজিও; লে বোরগনে, ইয়ান-আয়েল; কায়েলেন, অলিভিয়ের; বোনটেম্পি, জিয়ানলুকা। বাস্তব জীবনের ক্রেডিট কার্ড জালিয়াতি সনাক্তকরণের জন্য স্ট্রিমিং সক্রিয় শিক্ষণ কৌশল: মূল্যায়ন এবং দৃশ্যায়ন, ইন্টারন্যাশনাল জার্নাল অফ ডেটা সায়েন্স অ্যান্ড অ্যানালিটিক্স, ৫,৪,২৮৫-৩০০,২০১৮, স্প্রিংগার ইন্টারন্যাশনাল পাবলিশিং

বারট্রান্ড লেবিশট, ইয়ান-আয়েল লে বোর্ন, লিয়ুন হে, ফ্রেডেরিক ওবলে, জিয়ানলুকা বোনটেম্পি, "ক্রেডিট কার্ড জালিয়াতি সনাক্তকরণের জন্য ডিপ-লার্নিং ডোমেইন অ্যাডাপটেশন কৌশল" , আইএনএনএসবিডিডিএল ২০১৯: বিগ ডেটা এবং ডিপ লার্নিং-এ সাম্প্রতিক অগ্রগতি, পৃষ্ঠা ৭৮-৮৮, ২০১৯

ফ্যাব্রিজিও কারসিলো, ইয়ান-আয়েল লে বোর্ন, অলিভিয়ের কায়েলেন, ফ্রেডেরিক ওবলে, জিয়ানলুকা বোনটেম্পি, "ক্রেডিট কার্ড জালিয়াতি সনাক্তকরণে তত্ত্বাবধানবিহীন এবং তত্ত্বাবধানযুক্ত শিক্ষার সমন্বয়", ইনফরমেশন সায়েন্সেস, ২০১৯

৩. আপনার পরিবেশ প্রস্তুত করুন

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

  1. bigquery API সক্রিয় করুন

BigQuery- তে যান এবং যদি আগে থেকে সক্রিয় করা না থাকে তবে 'Enable' নির্বাচন করুন। আপনার মডেল তৈরি করার জন্য এটি প্রয়োজন হবে।

৪. ডেটা অন্বেষণ করুন

ধাপ ১: Bigquery-তে যান

https://cloud.google.com/console- এ Bigquery খুঁজুন।

ধাপ ২: কোয়েরি ব্যবহার করে ডেটা অন্বেষণ করুন।

পাবলিক ডেটাসেটের ডেটা পর্যালোচনা করতে এডিটরে নিচের SQL কোয়েরিটি টাইপ করুন।

SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` LIMIT 5

ধাপ ৩: সম্পাদন করুন

কোয়েরিটি কার্যকর করতে উপরের রান কমান্ডটি চাপুন।

c670e136ecd58236.png

ফলাফল

এটি কোয়েরি রেজাল্টস প্যানেলে থাকা উচিত এবং দেখতে অনেকটা এইরকম হবে। ডেটা ভিন্ন হতে পারে।

be082fb135879158.png

সংশ্লিষ্ট কলামগুলো এবং আউটপুটটি খতিয়ে দেখুন।

ডেটা কীভাবে বিন্যস্ত আছে তা বোঝার জন্য আপনি একাধিক কোয়েরি চালাতে পারেন। কিছু উদাহরণ হতে পারে:

SELECT count(*) FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` 
where Class=0;
SELECT count(*) FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` 
where Class=1;

৫. একটি আউটপুট ডেটাসেট তৈরি করুন।

ধাপ ১: মডেল তৈরির জন্য ডেটাসেট তৈরি করুন

  1. এক্সপ্লোরার প্যানেলের বাম দিকে, আপনি বর্তমানে যে প্রজেক্টটিতে কাজ করছেন সেটি বেছে নিন, তারপর এর পাশে থাকা তিনটি ডটে ক্লিক করুন।

7618699754e066bd.png

  1. উপরের ডানদিকে Create Dataset-এ ক্লিক করুন।

17851cc9db05dc1.png

  1. ডেটা সেটের নাম, ধারণক্ষমতা, অবস্থান ইত্যাদির বিবরণ লিখুন, এই সেটিংসগুলি ব্যবহার করুন।

b8b6731408f61d57.png

৬. লজিস্টিক রিগ্রেশন মডেল তৈরি করুন

ধাপ ১: স্টেটমেন্ট তৈরি করুন

কোয়েরি উইন্ডোতে মডেল তৈরির জন্য নিচের কোয়েরিটি টাইপ করুন। এই স্টেটমেন্টটির সাথে থাকা মূল অপশনগুলো বুঝুন। এই লিঙ্কে তা ব্যাখ্যা করা হয়েছে।

INPUT_LABEL_COLS ভবিষ্যদ্বাণীর লেবেল নির্দেশ করে।

ভারসাম্যহীন ডেটাসেটের জন্য AUTO_CLASS_WEIGHTS ব্যবহার করা হয়।

MODEL_TYPE ব্যবহৃত অ্যালগরিদম নির্দেশ করে, এক্ষেত্রে এটি হলো লজিস্টিক রিগ্রেশন।

DATA_SPLIT_METHOD ট্রেনিং এবং টেস্টিং ডেটার মধ্যে বিভাজন নির্দেশ করে।

CREATE OR REPLACE MODEL advdata.ulb_fraud_detection 
TRANSFORM(
    * EXCEPT(Amount),
    SAFE.LOG(Amount) AS log_amount
)
OPTIONS(
    INPUT_LABEL_COLS=['class'],
    AUTO_CLASS_WEIGHTS = TRUE,
    DATA_SPLIT_METHOD='seq',
    DATA_SPLIT_COL='Time',
    MODEL_TYPE='logistic_reg'
) AS

SELECT 
 *
FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection`

ধাপ ২: সম্পাদন করুন

উপরের স্টেটমেন্টটি চালান। এটি সম্পন্ন হতে কয়েক মিনিট সময় লাগবে।

দৌড় শেষ হওয়ার পর মূল বিষয়গুলো লক্ষ্য করুন।

3385a54d3907443e.png

  1. এক্সপ্লোরার প্যানেলে তৈরি করা মডেলটি থাকবে
  2. যেকোনো SQL স্টেটমেন্টের মতোই, কোয়েরি রেজাল্টস প্যানেলে ML SQL-টি প্রসেস করতে যে সময় লেগেছে তা দেখানো হবে।
  3. কোয়েরি রেজাল্টস প্যানেলে অন্বেষণের জন্য ‘গো টু মডেল’ লিঙ্কটিও থাকবে।

ধাপ ৩: অন্বেষণ করুন

'Go to Model'-এ ক্লিক করে অথবা এক্সপ্লোরার প্যানেল থেকে তৈরি করা মডেলটি অন্বেষণ করুন। ট্যাবগুলিতে তৈরি করা মডেল, প্রশিক্ষণ, মূল্যায়ন ইত্যাদি সম্পর্কিত তথ্য রয়েছে। ফলাফলগুলি পর্যালোচনা করুন।

b350f1b94835f2d1.png

আমরা পরবর্তী বিভাগগুলিতে এই বিষয়টি আরও বিশদভাবে আলোচনা করব।

লজিস্টিক রিগ্রেশন সম্পর্কে আরও জানতে এখানে দেখুন।

৭. মডেল মূল্যায়ন মেট্রিক অন্বেষণ

এই ধাপে আমরা দেখব আমাদের মডেলটি কেমন কাজ করেছে।

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

 SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)

ফলাফলগুলো দেখতে অনেকটা এইরকম হবে। ভারসাম্যহীন ডেটাসেটে roc_auc সাধারণত বেশি গুরুত্বপূর্ণ।

c3c80286082dc336.png

ফলাফল সম্পর্কে আরও জানতে, এখানে ML.Evaluate ডক্স দেখুন।

নির্ভুলতা এবং স্মরণ

ROC কার্ভ এবং AUC

৮. একটি নির্দিষ্ট সময়ের জন্য শ্রেণী অনুমান করুন

একটি নতুন কোয়েরি তৈরি করতে চাপুন এবং নিচের SQL-টি চালান। এখানে চিহ্নিত সময়টিতে একটি প্রতারণামূলক পরিমাণ রয়েছে। আমরা মূল্যায়ন করার চেষ্টা করছি যে পূর্বাভাসটি কাজ করে কিনা।

SELECT Amount, predicted_class_probs, Class
FROM ML.PREDICT( MODEL advdata.ulb_fraud_detection,
 (SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` WHERE Time = 85285.0)
)

আউটপুটটি দেখতে অনেকটা এইরকম হবে (সংখ্যাগুলো ভিন্ন হতে পারে)।

676fc8accdab2f6c.png

এই ক্ষেত্রে, আমরা লেবেলটির সাথে সংশ্লিষ্ট সম্ভাবনাসহ পরিমাণটি প্রদর্শন করছি। এখানকার 'ক্লাস' কলামটি নির্দেশ করে প্রকৃত ফলাফল কী ছিল।

এমএল.প্রেডিক্ট সম্পর্কে আরও জানতে এখানে দেখুন।

৯. পরিচ্ছন্নতা

আপনি যদি এই ল্যাবের মাধ্যমে তৈরি রিসোর্সগুলো পরিষ্করণ করতে চান, তাহলে বাম দিকের এক্সপ্লোরার প্যানেল থেকে ডেটাসেটটি খুলুন।

e7d18fadd2b781be.png

উপরের ডান কোণায় থাকা ডেটাসেট মুছুন (Delete Dataset) বোতামে ক্লিক করুন।

b47bc819869bed6c.png

বিবরণ নিশ্চিত করতে ডেটাসেটের নামটি আবার লিখুন। আমাদের ক্ষেত্রে এটি হবে advdata।

১০. অভিনন্দন

অভিনন্দন, আপনি সুপারভাইজড মেশিন লার্নিং ব্যবহার করে সফলভাবে আপনার প্রথম মডেলটি তৈরি, মূল্যায়ন এবং পূর্বাভাস দিয়েছেন!

লজিস্টিক রিগ্রেশন মডেল তৈরি করার জন্য প্রয়োজনীয় মূল ধাপগুলো এখন আপনি জানেন।

এরপর কী?

ভবিষ্যদ্বাণী করার সাথে জড়িত এই অন্যান্য উপায়গুলো দেখে নিন।

রেফারেন্স নথি