লিনিয়ার এবং লজিস্টিক রিগ্রেশন হল মেশিন লার্নিং মডেল যা আপনাকে বিজ্ঞাপন ডেটা থেকে অর্থপূর্ণ ভবিষ্যদ্বাণী তৈরি করতে সক্ষম করে।
- লিনিয়ার রিগ্রেশন ডেটাতে একটি লাইন ফিট করার জন্য একটি ফাংশন তৈরি করে যাতে ডেটা পয়েন্ট এবং লাইনের মধ্যে দূরত্ব কম হয়। এই মডেলটি তারপর ইনপুটগুলির উপর ভিত্তি করে একটি সংখ্যাসূচক মান ভবিষ্যদ্বাণী করতে ব্যবহার করা যেতে পারে, যেমন ক্রয়, পূর্বের মিথস্ক্রিয়া ইত্যাদির উপর ভিত্তি করে ব্যবহারকারীর জীবনকালের মূল্য ভবিষ্যদ্বাণী করা।
- লজিস্টিক রিগ্রেশন ভবিষ্যদ্বাণীমূলক শ্রেণীবিভাগ সমস্যার জন্য ব্যবহৃত হয়। আপনি কতগুলি ভেরিয়েবল প্রদান করেন তার উপর নির্ভর করে মডেলটি 2 প্রকারের একটি হতে পারে:
- বাইনারি লজিস্টিক রিগ্রেশন "হ্যাঁ/না" প্রশ্নের উত্তর দেয়, যেমন একটি রূপান্তর ইভেন্ট হওয়ার সম্ভাবনা কতটা।
- মাল্টিক্লাস লজিস্টিক রিগ্রেশন ব্যবহার করা হয় একাধিক সম্ভাব্য মানের পূর্বাভাস দিতে, যেমন একজন গ্রাহক "নিম্ন-মূল্য", "মাঝারি-মূল্য" বা "উচ্চ-মূল্য" কিনা তা নির্ধারণ করতে।
রৈখিক এবং লজিস্টিক রিগ্রেশন উভয়ই প্রশিক্ষণ ডেটা থেকে শিখে (এই ক্ষেত্রে, আপনার বিজ্ঞাপনের ডেটা), আপনাকে বিজ্ঞাপনের সিদ্ধান্ত নেওয়ার জন্য একটি ভবিষ্যদ্বাণীমূলক মডেল দেয়। সাধারণত, আরও ডেটা প্রদান করা এবং আপনি যে ডেটা প্রদান করেন তা উচ্চ মানের তা নিশ্চিত করা আপনার মডেলের যথার্থতা উন্নত করবে। শক্তভাবে ক্লাস্টার করা প্রশিক্ষণের ডেটা দেওয়া হলে উভয় মডেলই আরও ভাল পারফর্ম করে।
ডিফারেনশিয়াল গোপনীয়তা
রৈখিক এবং লজিস্টিক রিগ্রেশন উভয়ই ডিফারেনশিয়াল গোপনীয়তা ব্যবহার করে, যা বিজ্ঞাপন ডেটা হাবের অন্যান্য ক্রিয়াকলাপের তুলনায় গোপনীয়তা চেকের একটি ভিন্ন সিস্টেম। ডিফারেনশিয়াল গোপনীয়তা প্রশিক্ষণ প্রক্রিয়া চলাকালীন আপনার ফলাফলে গোলমাল ইনজেক্ট করে শেষ ব্যবহারকারীর গোপনীয়তা নিশ্চিত করে। গোলমালের এই স্তরটি যথেষ্ট কম থাকে যে শেষ ফলাফলগুলি এখনও কার্যকর, তবে এত বেশি যে শেষ ব্যবহারকারীদের সনাক্ত করা যায় না। উপরন্তু গোলমালের মাত্রা অ-নিয়ন্ত্রক, যেমন ফলাফলের গোলমালের একটি অসামঞ্জস্যপূর্ণ স্তর রয়েছে, যা আরও নিশ্চিত করে শেষ-ব্যবহারকারীর গোপনীয়তা।
প্রশ্ন সীমিত
ডিফল্ট EPSILON_PER_MODEL
ব্যবহার করার সময় আপনি 100টি রৈখিক এবং লজিস্টিক রিগ্রেশন মডেলিং ক্যোয়ারী প্রতি “ডেটা ডে”-তে সীমাবদ্ধ। ডেটা দিন একটি নির্দিষ্ট দিনে উত্পন্ন ঘটনা বোঝায়। এই ইভেন্টগুলি আপনার ক্যোয়ারী চালানোর সময় আপনি যে সূচনা এবং শেষ তারিখগুলি প্রদান করেন এবং আপনার ক্যোয়ারী ব্যবহার করে এমন কোনো টেবিল তৈরি করার সময় ব্যবহার করা শুরু এবং শেষের তারিখগুলির সাথে মিলে যায়—যেমন প্রশিক্ষণের জন্য ব্যবহৃত টেম্প টেবিল। এর মানে হল যে 1 দিনের ডেটা 100 টির বেশি মডেলে ব্যবহার করা যাবে না। আপনি যদি ডিফল্টের চেয়ে বেশি EPSILON_PER_MODEL-এর মান নির্দিষ্ট করতে চান, তাহলে আপনি কম মডেল তৈরি করতে সক্ষম হবেন, কিন্তু সেগুলির গুণমান উচ্চতর হবে৷ এবং যদি আপনি EPSILON_PER_MODEL-এর ছোট মান বেছে নেন, তাহলে আপনি আরও মডেলকে প্রশিক্ষণ দিতে পারেন, কিন্তু সেগুলির গুণমান কম হবে৷
এটা কিভাবে কাজ করে
কর্মপ্রবাহ এই প্রয়োজনীয় পদক্ষেপগুলি অনুসরণ করে:
- প্রশিক্ষণ তথ্য প্রস্তুত.
- একটি মডেল তৈরি করুন।
- মডেল থেকে অন্তর্দৃষ্টি সংগ্রহ করুন.
প্রশিক্ষণ তথ্য প্রস্তুত
উপরে উল্লিখিত হিসাবে, বৃহত্তর, উচ্চ-মানের ডেটাসেটগুলি ব্যবহার করা সাধারণত ভাল ফলাফলের দিকে পরিচালিত করবে। উপরন্তু, যেহেতু ইনপুট ডেটা ন্যূনতম-ম্যাক্স স্কেলিং ব্যবহার করে স্কেল করা হয়, তাই বিক্ষিপ্তভাবে গুচ্ছ ডেটা বা উল্লেখযোগ্য আউটলার সহ ডেটা গড় স্থানান্তরিত করে মডেলটিকে প্রতিকূলভাবে প্রভাবিত করতে পারে।
ডিফল্টরূপে, বিজ্ঞাপন ডেটা হাব এলোমেলোভাবে যাচাইকরণের জন্য ব্যবহার করার জন্য আপনার প্রশিক্ষণ ডেটার 18% নির্বাচন করে। বৈধকরণের জন্য ব্যবহৃত ডেটার শতাংশ data_split_eval_fraction
বিকল্প দ্বারা নিয়ন্ত্রিত হতে পারে।
একটি মডেল তৈরি করুন
আপনার মডেল প্রশিক্ষণের জন্য পরামিতি এবং ইনপুট ডেটা নির্দিষ্ট করুন।
সর্বোত্তম অনুশীলন
একটি মডেলের মানের সবচেয়ে গুরুত্বপূর্ণ কারণগুলির মধ্যে একটি হল প্রশিক্ষণ সেটের আকার। যাইহোক, সমস্যা এবং নীচে তালিকাভুক্ত কারণগুলির উপর নির্ভর করে আকার/গুণমানের ট্রেডঅফ ভিন্ন হবে। আমাদের আপনার অভিজ্ঞতা জানান.
- আমরা কমপক্ষে 100,000 ব্যবহারকারীদের প্রশিক্ষণ সেট থেকে তৈরি লজিস্টিক রিগ্রেশন মডেলের জন্য নির্ভুলতা > 0.70 দেখেছি।
- আমরা কমপক্ষে 800,000 ব্যবহারকারীদের প্রশিক্ষণ সেট থেকে তৈরি রৈখিক রিগ্রেশন মডেলের জন্য r-squared > 0.70 দেখেছি।
একটি মডেলের গুণমান হ্রাস করতে পারে এমন অন্যান্য কারণ রয়েছে।
- লজিস্টিক মডেল যেখানে একটি শ্রেণী অন্যদের তুলনায় অনেক বেশি প্রতিনিধিত্ব করে। বিশেষভাবে, যখন একটি লেবেলে অল্পসংখ্যক প্রশিক্ষণ সেট ব্যবহারকারী থাকে, তখন অন্যান্য লেবেলের সাথে প্রচুর প্রশিক্ষণ সেট ব্যবহারকারী থাকা সম্ভবত ছোট লেবেলে মডেলের নির্ভুলতার জন্য খুব বেশি সাহায্য করবে না। উদাহরণস্বরূপ, দুটি লেবেলের জন্য 20,000 এবং 1,000 প্রশিক্ষণ সেট ব্যবহারকারী 10,000 এবং 2,000 এর চেয়ে খারাপ৷
- বৈশিষ্ট্য ডেটা যা লেবেলগুলির জন্য একটি শক্তিশালী সংকেত প্রদান করে না।
- কাঁচা ডেটা যার জন্য আরও বিস্তৃত বৈশিষ্ট্য ইঞ্জিনিয়ারিং প্রয়োজন। উদাহরণস্বরূপ, কিছু ক্ষেত্রের সম্ভাব্য মানগুলির একটি খুব বড় সংখ্যা থাকতে পারে। এই ধরনের ডেটা উন্নত করার একটি উপায় হল মানগুলিকে একটি বৈশিষ্ট্যে রূপান্তরিত করা যাতে অল্প সংখ্যক বিভাগ বা বালতি থাকে।
অন্তর্দৃষ্টি সংগ্রহ করুন
আপনি বৈধতা ডেটাতে আপনার মডেলের কার্যকারিতা মূল্যায়ন করার জন্য ফাংশনগুলিকে কল করতে পারেন, প্রশিক্ষণের পুনরাবৃত্তির বৈশিষ্ট্য এবং তথ্য পরিদর্শন করতে পারেন (যেমন ভবিষ্যদ্বাণী করার সময় একটি মডেল দ্বারা ব্যবহৃত অন্তর্নিহিত ওজন), এবং অদেখা ডেটার উপর ভবিষ্যদ্বাণী করতে পারেন৷
মডেল বিবৃতি তৈরি করুন
CREATE MODEL
স্টেটমেন্ট আপনার নির্দিষ্ট করা নাম এবং ডেটাসেট সহ একটি মডেল তৈরি করে। যদি মডেলের নামটি ইতিমধ্যেই বিদ্যমান থাকে, CREATE MODEL
বিদ্যমান মডেলটিকে প্রতিস্থাপন করে৷
মডেল সিনট্যাক্স তৈরি করুন
CREATE MODEL
model_name
OPTIONS
(
// model_option_list:
// Required parameter.
MODEL_TYPE = { 'ADH_LINEAR_REGRESSION' | 'ADH_LOGISTIC_REGRESSION'}
// Optional tuning parameters.
[, L1_REG = float64_value ]
[, L2_REG = float64_value ]
[, DATA_SPLIT_EVAL_FRACTION = float64_value ]
[, OPTIMIZE_STRATEGY = { 'AUTO_STRATEGY' | 'BATCH_GRADIENT_DESCENT' |
'NORMAL_EQUATION' } ]
[, MAX_ITERATIONS = int64_value ]
[, LEARN_RATE_STRATEGY = { 'LINE_SEARCH' | 'CONSTANT' } ]
[, LEARN_RATE = float64_value ]
[, EARLY_STOP = { TRUE | FALSE } ]
[, MIN_REL_PROGRESS = float64_value ]
[, LS_INIT_LEARN_RATE = float64_value ]
[, EPSILON_PER_MODEL = float64_value ]
[, AUTOMATIC_IMPUT_SCALING = bool_value ]
[, MIN_MAX_SCALED_COLS = [string_value, string_value... ] ]
[, STANDARD_SCALED_COLS = [string_value, string_value... ] ]
[, QUANTILE_BUCKETIZED_COLS = [
STRUCT(string_value AS col_name, int64_value AS num_buckets),
STRUCT(string_value AS col_name, int64_value AS num_buckets)... ] ]
)
AS query_statement
মডেল_নাম
আন্ডারস্কোর এবং ড্যাশ সহ একটি আলফানিউমেরিক নাম। বিন্দু অন্তর্ভুক্ত করা যাবে না। আপনি যে মডেলের নামটি প্রদান করেছেন তা যদি ইতিমধ্যেই বিদ্যমান থাকে, তাহলে পুরানো মডেলটি ওভাররাইট করা হবে।
query_statement
প্রশিক্ষণের ডেটা তৈরি করতে ব্যবহৃত স্ট্যান্ডার্ড SQL কোয়েরি নির্দিষ্ট করে। আপনি যদি একই প্রশিক্ষণ ডেটা ব্যবহার করে একাধিক মডেল তৈরি করেন, তাহলে প্রশিক্ষণের ডেটা সহ একটি অস্থায়ী টেবিল তৈরি করুন এবং এটি এখানে উল্লেখ করুন। এই কৌশলটি মোছা বা দেরীতে স্প্যামের কারণে সম্ভাব্য পার্থক্য পরীক্ষা ত্রুটিগুলি এড়ায়।
মডেল_বিকল্প_তালিকা
মডেল_টাইপ
(প্রয়োজনীয়) একমাত্র প্রয়োজনীয় বিকল্প। হতে পারে ' adh_linear_regression
' , অথবা ' adh_logistic_regression
'
l1_reg
(ঐচ্ছিক) L1 নিয়মিতকরণের পরিমাণ প্রয়োগ করা হয়েছে। L1 নিয়মিতকরণ ওজনের পরম মানের যোগফলের অনুপাতে ওজনকে শাস্তি দেয়। কোনো অ-ঋণাত্মক সংখ্যা হতে পারে, ডিফল্ট শূন্য।
l2_reg
(ঐচ্ছিক) L2 নিয়মিতকরণের পরিমাণ প্রয়োগ করা হয়েছে। L2 নিয়মিতকরণ ওজনের বর্গক্ষেত্রের যোগফলের বর্গমূলের অনুপাতে ওজনকে শাস্তি দেয়। কোনো অ-ঋণাত্মক সংখ্যা হতে পারে, ডিফল্ট শূন্য।
ডেটা_বিভাজন_ইভাল_ভগ্নাংশ
(ঐচ্ছিক) ডিফল্ট .18 সহ .01 এবং .99 এর মধ্যে হতে হবে। ডেটার ভগ্নাংশ নির্ধারণ করে যা মূল্যায়ন সেটে শেষ হয়। এটি মডেলের সারির সংখ্যা হ্রাস করে মডেলের নির্ভুলতাকে প্রভাবিত করে যা মডেলের মধ্যে শেষ হয় কিন্তু একজন ব্যবহারকারী যে মডেলগুলি চালাতে পারে তার সংখ্যাও বাড়িয়ে দেয়। প্রদত্ত ডেটাসেটের প্রতিটি মডেলের একই ভগ্নাংশ রয়েছে অনুমান করে সেই সম্পর্কের একটি চার্ট এখানে রয়েছে:
বৈধতা ভগ্নাংশ | অনুমোদিত প্রশ্ন |
---|---|
0.01 | 7 |
0.1 | 8 |
0.15 | 8 |
0.18 | 9 |
0.2 | 9 |
0.3 | 10 |
0.5 | 14 |
0.9 | 50 |
অপটিমাইজ_কৌশল
(ঐচ্ছিক) রৈখিক রিগ্রেশন মডেল প্রশিক্ষণের কৌশল।
যুক্তি
' AUTO_STRATEGY
' নিম্নরূপ প্রশিক্ষণ কৌশল নির্ধারণ করে:
- যদি
l1_reg
বাwarm_start
নির্দিষ্ট করা হয়,batch_gradient_descent
কৌশল ব্যবহার করা হয়। - প্রশিক্ষণ বৈশিষ্ট্যের মোট মূল বৈশিষ্ট্য 10,000-এর বেশি হলে,
batch_gradient_descent
কৌশল ব্যবহার করা হয়। - যদি একটি ওভার-ফিটিং সমস্যা থাকে (প্রশিক্ষণ উদাহরণের সংখ্যা 10 এর কম • মোট কার্ডিনালিটি),
batch_gradient_descent
কৌশল ব্যবহার করা হয়। -
NORMAL_EQUATION
কৌশল অন্য সব ক্ষেত্রে ব্যবহৃত হয়।
' BATCH_GRADIENT_DESCENT
' (শুধুমাত্র লজিস্টিক) ব্যাচ গ্রেডিয়েন্ট ডিসেন্ট পদ্ধতি ব্যবহার করে মডেলটিকে প্রশিক্ষণ দেয়, যা গ্রেডিয়েন্ট ফাংশন ব্যবহার করে ক্ষতি ফাংশনকে অপ্টিমাইজ করে।
' NORMAL_EQUATION
' (শুধুমাত্র রৈখিক) বিশ্লেষণাত্মক সূত্রের সাথে লিনিয়ার রিগ্রেশন সমস্যার সর্বনিম্ন বর্গক্ষেত্রের সমাধানকে সরাসরি গণনা করে। নিম্নলিখিত ক্ষেত্রে সাধারণ সমীকরণ ব্যবহার করা যাবে না:
-
l1_reg
নির্দিষ্ট করা আছে। -
warm_start
নির্দিষ্ট করা আছে। - প্রশিক্ষণ বৈশিষ্ট্যের মোট কার্ডিনালিটি 10,000-এর বেশি।
- ডিফল্ট মান হল '
AUTO_STRATEGY
'৷
সর্বোচ্চ_পুনরাবৃত্তি
(ঐচ্ছিক) প্রশিক্ষণের পুনরাবৃত্তি বা পদক্ষেপের সংখ্যা। যেহেতু এই প্রশ্নটি প্রতিটি পুনরাবৃত্তির জন্য একটি গাছ তৈরি করে, এটি গাছের সংখ্যাও। 1 এর থেকে বড় একটি পূর্ণসংখ্যা হতে হবে। ডিফল্ট 20।
শেখার_দর_কৌশল
(ঐচ্ছিক, শুধুমাত্র লজিস্টিক) প্রশিক্ষণের সময় শেখার হার নির্দিষ্ট করার কৌশল।
যুক্তি
শেখার হার গণনা করতে ' LINE_SEARCH
' লাইন অনুসন্ধান পদ্ধতি ব্যবহার করে৷ লাইন অনুসন্ধানের প্রাথমিক শিখন হার হল LS_INIT_LEARN_RATE
এর জন্য নির্দিষ্ট করা মান।
- লাইন অনুসন্ধান প্রশিক্ষণকে ধীর করে দেয় এবং প্রক্রিয়াকৃত বাইটের সংখ্যা বাড়ায়, তবে এটি সাধারণত বৃহত্তর প্রাথমিক নির্দিষ্ট শেখার হারের সাথেও একত্রিত হয়।
' CONSTANT
' শিক্ষার হারকে LEARN_RATE
এর জন্য নির্দিষ্ট করা মানতে সেট করে।
ডিফল্ট মান হল ' LINE_SEARCH
'৷
শেখার_হার
(ঐচ্ছিক, শুধুমাত্র লজিস্টিক) গ্রেডিয়েন্ট ডিসেন্টের জন্য শেখার হার যখন LEARN_RATE_STRATEGY
CONSTANT
এ সেট করা থাকে। যদি LEARN_RATE_STRATEGY
' LINE_SEARCH
' তে সেট করা থাকে, একটি ত্রুটি ফেরত দেওয়া হয়৷
যুক্তি
float64_value
যেকোনো 64-বিট ফ্লোটিং পয়েন্ট নম্বর হতে পারে। ডিফল্ট 0.1 (10%)।
তাড়াতাড়ি_স্টপ
(ঐচ্ছিক) প্রথম পুনরাবৃত্তির পরে প্রশিক্ষণ বন্ধ করা উচিত যেখানে আপেক্ষিক ক্ষতির উন্নতি MIN_REL_PROGRESS
এর জন্য নির্দিষ্ট করা মান থেকে কম।
যুক্তি
"হ্যাঁ" এর জন্য TRUE
, "না" এর জন্য FALSE
। ডিফল্ট থেকে TRUE
।
min_rel_progress
(ঐচ্ছিক) ন্যূনতম আপেক্ষিক ক্ষতির উন্নতি যা প্রশিক্ষণ চালিয়ে যাওয়ার জন্য প্রয়োজনীয় যখন EARLY_STOP
সত্যে সেট করা হয়। উদাহরণস্বরূপ, 0.01 এর একটি মান নির্দিষ্ট করে যে প্রশিক্ষণ চালিয়ে যাওয়ার জন্য প্রতিটি পুনরাবৃত্তি অবশ্যই 1% দ্বারা ক্ষতি কমাতে হবে।
যুক্তি
float64_value
যেকোনো 64-বিট ফ্লোটিং পয়েন্ট নম্বর হতে পারে। ডিফল্ট 0.1 (10%)।
ls_init_learn_rate
(ঐচ্ছিক) প্রাথমিক শিক্ষার হার সেট করে যা LEARN_RATE_STRATEGY='LINE_SEARCH'
ব্যবহার করে। LINE_SEARCH
নির্দিষ্ট করা থাকলেই এই বিকল্পটি ব্যবহার করা যেতে পারে৷
যদি ML.TRAINING_INFO
দ্বারা নির্দেশিত মডেলের LEARN_RATE
প্রতি পুনরাবৃত্তির দ্বিগুণ হতে দেখা যায়, তাহলে LS_INIT_LEARN_RATE
কে শেষ দ্বিগুণ শেখার হারে সেট করার চেষ্টা করুন। সর্বোত্তম প্রাথমিক শিক্ষার হার প্রতিটি মডেলের জন্য আলাদা। একটি মডেলের জন্য একটি ভাল প্রাথমিক শেখার হার অন্যটির জন্য ভাল প্রাথমিক শেখার হার নাও হতে পারে।
যুক্তি
float64_value
যেকোনো 64-বিট ফ্লোটিং পয়েন্ট নম্বর হতে পারে।
epsilon_per_model
(ঐচ্ছিক) এই মডেলের প্রশিক্ষণের জন্য ব্যবহার করা গোপনীয়তা বাজেটের পরিমাণ নির্দিষ্ট করে৷ প্রতিটি বিজ্ঞাপন ডেটা গ্রাহককে প্রতি ডেটা দিনে 10.0 এর একটি গোপনীয়তা বাজেট দেওয়া হয়। একটি সফলভাবে প্রশিক্ষিত মডেল প্রতিটি ডেটা দিনের জন্য বাজেটের EPSILON_PER_MODEL খরচ করবে ক্যোয়ারী চালানোর সময় নির্দিষ্ট তারিখের ব্যাপ্তিতে। ln(3)/10 এর ডিফল্ট মান ব্যবহার করে প্রায় 100টি মডেল তৈরি করা যাবে। যদি আপনি একটি উচ্চ মান ব্যবহার করেন, আপনি কম মডেল তৈরি করতে সক্ষম হবে, কিন্তু তারা উচ্চ মানের হবে. আপনি যদি একটি ছোট মান ব্যবহার করেন তবে আপনি নিম্ন মানের আরও মডেল তৈরি করতে সক্ষম হবেন।
যুক্তি
float64_value
যেকোনো ধনাত্মক 64-বিট ফ্লোটিং পয়েন্ট সংখ্যা ln(3) থেকে কম হতে পারে, যা প্রায় 1.0986। ডিফল্ট ln(3)/10।
স্বয়ংক্রিয়_ইনপুট_স্কেলিং
(ঐচ্ছিক) যখন TRUE
, সমস্ত সংখ্যাসূচক বৈশিষ্ট্যের কলামে স্বয়ংক্রিয়ভাবে min_max_scaling
প্রয়োগ করা হবে, যেন কলামের নামগুলি স্পষ্টভাবে বলা হয়েছে min_max_scaled_cols
বিকল্পে, যে কোনও কলাম বাদ দিয়ে যা স্পষ্টভাবে স্ট্যান্ডার্ড_ standard_scaled_cols
এ বলা হয়েছে quantile_bucketized_cols
যুক্তি
bool_value
হল একটি BOOL
, ডিফল্ট মান হল TRUE
।
সর্বনিম্ন_সর্বোচ্চ_স্কেলড_কল
(ঐচ্ছিক) 0 থেকে 1 এর পরিসরে প্রতিটি নির্দিষ্ট সাংখ্যিক_এক্সপ্রেশন বৈশিষ্ট্যের কলামগুলিকে স্কেল করে, সমস্ত সারি জুড়ে MIN
এবং MAX
দিয়ে সীমাবদ্ধ। একই MIN
এবং MAX
স্বয়ংক্রিয়ভাবে ভবিষ্যদ্বাণীতে ব্যবহৃত হয়। যদি ভবিষ্যদ্বাণী ডেটা MIN
, MAX
সীমার বাইরে থাকে, তাহলে এটি 0 বা 1-এ সীমাবদ্ধ থাকে৷
যুক্তি
string_value
এর অ্যারে, যেখানে প্রতিটি string_value
হল একটি STRING যা রূপান্তরিত হওয়া কলামের নাম উপস্থাপন করে।
স্ট্যান্ডার্ড_স্কেলড_কল
(ঐচ্ছিক) সমস্ত সারি জুড়ে নির্দিষ্ট numerical_expression
বৈশিষ্ট্য কলামগুলিকে প্রমিত করে। অভিব্যক্তিকে প্রমিত করার জন্য গণনা করা STDDEV
এবং MEAN
স্বয়ংক্রিয়ভাবে ভবিষ্যদ্বাণীতে ব্যবহৃত হয়।
যুক্তি
string_value
এর অ্যারে, যেখানে প্রতিটি string_value
হল একটি STRING
যা রূপান্তরিত হওয়া কলামের নাম উপস্থাপন করে।
quantile_bucketized_cols
কোয়ান্টাইলের উপর ভিত্তি করে মান হিসাবে বালতির নাম সহ একটি STRING
এ নির্দিষ্ট ক্রমাগত সংখ্যাসূচক বৈশিষ্ট্য কলামগুলিকে বাকেটাইজ করে। একই কোয়ান্টাইল স্বয়ংক্রিয়ভাবে ভবিষ্যদ্বাণীতে ব্যবহৃত হয়।
যুক্তি
STRUCT(string_value AS col_name, int64_value AS num_buckets)
এর অ্যারে , যেখানে প্রতিটি string_value হল একটি STRING
যা রূপান্তরিত হওয়া ধারাবাহিক সাংখ্যিক কলামের নাম উপস্থাপন করে এবং প্রতিটি int64_value
হল সংখ্যাসূচক মানগুলিকে বিভক্ত করার জন্য বালতিগুলির সংখ্যা৷
বৈধতা
- এই ক্যোয়ারীটির জন্য নির্দিষ্ট করা তারিখ সীমার প্রতিটি ডেটা দিনে পর্যাপ্ত গোপনীয়তা বাজেট থাকতে হবে, অর্থাৎ EPSILON_PER_MODEL এর চেয়ে বেশি, নতুবা ক্যোয়ারী ব্যর্থ হবে৷
- ঐচ্ছিক টিউনিং পরামিতি, যদি নির্দিষ্ট করা থাকে, উপরে দেখানো রেঞ্জের জন্য যাচাই করা হবে।
- শুধুমাত্র একটি প্রয়োজনীয় মডেল_টাইপ প্যারামিটার স্পষ্টভাবে উল্লেখ করতে হবে।
- প্রশিক্ষণ সেটের একটি কলামের নাম "লেবেল" থাকতে হবে। একাধিক লেবেল বর্তমানে সমর্থিত নয়।
- লেবেল কলামে NULL মান থাকতে পারে না। লেবেল কলামে NULL মান থাকলে, ক্যোয়ারী ব্যর্থ হয়।
- কোনো বৈশিষ্ট্য কলাম user_id থেকে প্রাপ্ত করা যাবে না।
- প্রতিটি সারিতে অবশ্যই একজন অনন্য ব্যবহারকারীর প্রতিনিধিত্ব করতে হবে। একটি সারি একাধিক ব্যবহারকারীর ডেটা উপস্থাপন করতে পারে না। এটি নির্দিষ্ট যোগদানের সাথে ঘটতে পারে, যেমন একটি ক্রস যোগদান।
- কোনো ব্যবহারকারী দুটি পৃথক সারিতে থাকতে পারবে না।
- গোপনীয়তার কারণে, শুধুমাত্র সিনট্যাক্স বিভাগে বর্ণিত বিকল্পগুলি ব্যবহারযোগ্য। BQML CREATE MODEL ক্যোয়ারী ডকুমেন্টেশনে পাওয়া অন্যান্য বিকল্পগুলি বর্তমানে সমর্থিত নয়।
মূল্যায়ন ফাংশন
ML.Evaluate
মডেল মেট্রিক্স মূল্যায়ন করতে ML.EVALUATE
ফাংশন ব্যবহার করুন। ML.EVALUATE
ফাংশনটি লিনিয়ার রিগ্রেশন বা লজিস্টিক রিগ্রেশন মডেলের সাথে ব্যবহার করা যেতে পারে।
SELECT
*
FROM ML.EVALUATE(MODEL `linear_model_test`);
ML.ROC_CURVE
লজিস্টিক রিগ্রেশন-নির্দিষ্ট মেট্রিক্স মূল্যায়ন করতে ML.ROC_CURVE
ফাংশন ব্যবহার করুন। ML.ROC_CURVE
শুধুমাত্র লজিস্টিক রিগ্রেশন মডেলের মূল্যায়ন করে।
SELECT
*
FROM ML.ROC_CURVE(MODEL `logistic_model_test`);
ভবিষ্যদ্বাণী ফাংশন
ML.PREDICT
ML.PREDICT
ফাংশনটি মডেল ব্যবহার করে ফলাফলের পূর্বাভাস দিতে ব্যবহার করা যেতে পারে। ML.PREDICT
ব্যবহার করে প্রাপ্ত ফলাফলগুলি বিজ্ঞাপন ডেটা হাবের অন্যান্য ফলাফলের মতো একই গোপনীয়তা পরীক্ষা সাপেক্ষে। গোপনীয়তা চেক সম্পর্কে আরও জানুন
লিনিয়ার রিগ্রেশন
/* This example outputs the average value for labels that the model predicted */
SELECT
AVG(predicted_label) AS average_predicted_label
FROM
ML.PREDICT(MODEL `linear_model_test`, TABLE tmp.linear_training_set);
লজিস্টিক রিগ্রেশন
/* This example outputs the model's prediction and probabilities for said prediction over individual users. It groups by label and prediction, counting the number of users in each prediction */
SELECT
label,
predicted_label, /* one of the two input labels, depending on which label has the higher predicted probability */
COUNT(*) AS num /* a tally of users */
FROM
ML.PREDICT(MODEL `logistic_model_test`, TABLE tmp.logistic_training_set)
GROUP BY 1, 2;
মডেল এবং বৈশিষ্ট্য পরিদর্শন ফাংশন
ML.TRAINING_INFO
ML.TRAINING_INFO
ফাংশন আপনাকে একটি মডেলের প্রশিক্ষণের পুনরাবৃত্তি সম্পর্কে তথ্য দেখতে দেয়।
SELECT
*
FROM ML.TRAINING_INFO(MODEL `logistic_model_test`);
ML.FEATURE_INFO
ML.FEATURE_INFO
ফাংশন আপনাকে একটি মডেল প্রশিক্ষণের জন্য ব্যবহৃত ইনপুট বৈশিষ্ট্য সম্পর্কে তথ্য দেখতে দেয়
SELECT
*
FROM ML.FEATURE_INFO(MODEL `logistic_model_test`);
ML.WEIGHTS
ML.WEIGHTS
ফাংশন আপনাকে ভবিষ্যদ্বাণী করার সময় একটি মডেল দ্বারা ব্যবহৃত অন্তর্নিহিত ওজন দেখতে দেয়।
SELECT
*
FROM ML.WEIGHTS(MODEL `linear_model_test`);
উদাহরণ
মডেল তৈরি করুন
নিম্নলিখিত উদাহরণগুলি কীভাবে একটি মডেল তৈরি করতে হয় তা প্রদর্শন করতে natality
নমুনা টেবিল ব্যবহার করে।
অভ্যন্তরীণ-নির্বাচনে প্রশিক্ষণ ডেটা (লিনিয়ার)
নিম্নলিখিত উদাহরণটি একটি শিশুর জন্ম ওজন ভবিষ্যদ্বাণী করতে জন্মের ওজন, লিঙ্গ, গর্ভকালীন সপ্তাহ, মায়ের বয়স এবং মা জাতি ব্যবহার করে।
CREATE MODEL `natality_model`
OPTIONS
(model_type='adh_linear_regression') AS
SELECT
weight_pounds as label,
is_male,
gestation_weeks,
mother_age,
CAST(mother_race AS string) AS mother_race
FROM
`bigquery-public-data.samples.natality`
WHERE
weight_pounds IS NOT NULL
অভ্যন্তরীণ-নির্বাচনে প্রশিক্ষণ ডেটা (লজিস্টিক)
নিম্নলিখিত উদাহরণটি একটি শিশুর লিঙ্গ ভবিষ্যদ্বাণী করতে জন্মের ওজন, লিঙ্গ, গর্ভকালীন সপ্তাহ, মায়ের বয়স এবং মা জাতি ব্যবহার করে।
CREATE MODEL `natality_model`
OPTIONS
(model_type='adh_logistic_regression') AS
SELECT
weight_pounds,
is_male as label,
gestation_weeks,
mother_age,
CAST(mother_race AS string) AS mother_race
FROM
`bigquery-public-data.samples.natality`
WHERE
weight_pounds IS NOT NULL
শ্রোতা সক্রিয়করণ
আপনি একটি বিদ্যমান লিনিয়ার রিগ্রেশন মডেল ব্যবহার করে ভবিষ্যদ্বাণী করতে পারেন - পরিচিত ওজন সহ - ML.PREDICT
ব্যবহার না করে, এমনকি মডেলটিতে অ্যাক্সেস ছাড়াই৷ কিভাবে শিখতে, দর্শক সক্রিয়করণ কোডল্যাবের জন্য রিগ্রেশন মডেলিং দেখুন।