Table of Contents
সিদ্ধান্ত নেওয়া হল, মৌলিক ও স্থায়ী উভয় বৈশিষ্ট্যের ওপর ভিত্তি করে মেশিন শেখার পদ্ধতি ব্যবহার করা, যেগুলো বিভিন্ন বৈশিষ্ট্যের ওপর ভিত্তি করে গঠিত তথ্যের শাখাগুলোকে বিভক্ত করে ।
( আদি.
সিদ্ধান্তটি একটি প্রবাহমান গাছ যেখানে প্রতিটি অভ্যন্তরীণ নোড একটি বৈশিষ্ট্যের উপর একটি পরীক্ষা করে দেখা হয় (যেমন, "আই বয়স ৩০?"), প্রত্যেক শাখা এই পরীক্ষার ফলাফলকে প্রতিনিধিত্ব করে এবং প্রত্যেক পাতা একটি শ্রেণী বা ক্রমাগত মান ধারণ করে থাকে। লক্ষ্য হচ্ছে এমন একটি মডেল তৈরি করা যা একটি আদর্শ নকশার মাধ্যমে ধারণা তৈরি করা যায় যে, তাতে নির্দিষ্ট কিছু সুনির্দিষ্ট সিদ্ধান্তের মাত্রা এবং ব্যাখ্যা করা যায় (যেমন, সেখানে এর মান অনুসারে)।
ট্রিটি রিকার্সিভ ভাবে নির্মিত হয়েছে: root থেকে আরম্ভ করা অ্যালগরিদমটি সবচেয়ে ভাল বৈশিষ্ট্যের অংশ থেকে শুরু করা হয় এবং বিভক্ত করে এই বিন্দুতে সবচেয়ে পরিষ্কার তথ্যকে পৃথক করে থাকে । এই প্রক্রিয়াটি আবার শুরু হয় একটি চক্রের মধ্যে দিয়ে যতক্ষণ না একটি অবস্থা দেখা যায়, ততক্ষণ পর্যন্ত ।
কনস্যুলেটসগুলো আপনি অবশ্যই বুঝতে পারবেন
নোড, শাখা, এবং চলে যান
মূল নোডটি হল সম্পূর্ণ প্রশিক্ষণ ফর্ম । অভ্যন্তরীণ নোড একটি বৈশিষ্ট্যের উপর ভিত্তি করে তথ্যকে দুই বা একাধিক চাইল্ড নোডে ভাগ করা এবং বিভক্ত করা । শাখা হল সংযোগগুলি হচ্ছে এমন একটি পরীক্ষার ফলাফলের ফলাফল । লিফ নোড (র্) নোড - morethers চূড়ান্ত শ্রেণী অথবা miners ।
সমবাহুতা অপসারণ করা হচ্ছে
গাছ নির্মাণের জন্য, সম্ভাব্য মান পরিমাপ করার জন্য আপনার একটি উপায় প্রয়োজন । অধিকাংশ সাধারণ মান হল:
- [[[F] [[F]] [FLT] - এ ব্যবহৃত- অক্ষরগুলো মাপার জন্য ব্যবহার করা হয়, lipnd [F] - a voications. fiation- এ ব্যবহৃত মান লিখতে হলে একটি একক বেছে নেওয়া হবে যদি এটি atailing শ্রেণীতে সমার্থক শ্রেণীতে লেবেল করা হয় । ছোট আকারে Gii ([F] Gini] [0] [0] [0] [Ctrl+F]]] [F[F]]]]] [Fed]]] [Ctrl[w]]]]]]] [Ctrl[w]][w]]]]]]] [CtrlCtrlর্থ করো যে, here
- [[F] [F] [FLT] - এর] - এ রোগ বা অনিশ্চয়তার পরিমাণ পরিমাপ করুন । বিভাজনের পর এর লক্ষ্য হল হ্রাস করা (তথ্য অর্জনের)
- [[F] [FLT] [FLT] - এর জন্য ব্যবহৃত][FLT] - ব্যবহার করুন রিগ্রেশনাল গাছের জন্য ব্যবহার করুন । এটি পার্থক্যের গণনা করে (অথবা বর্গমূলের ত্রুটির হার) ।
এই অ্যালগরিদম প্রত্যেকটি বৈশিষ্ট্যের সাথে ভাগ করে নেয়া সম্ভব। এর ফলে সবচেয়ে কম পরিমাণ কমে যায় (অথবা তথ্য পাওয়া যায়)।
তথ্য লাভ এবং লাভ সন্তানName
এই প্রশিক্ষণ ব্যবস্থার মাধ্যমে আমরা সাধারণ মানের সঙ্গে মিল রেখে সাধারণ মানের সঙ্গে মিল রেখে জীবনযাপন করতে পারব, যা কিনা সাধারণভাবে ব্যবহার করতে হবে । এই প্রশিক্ষণটি ব্যবহার করে জিনিনিরি এবং প্রাকৃতিক সম্পদ (প্রতিটি ট্রি) । এই পদ্ধতিতে আমরা সাধারণ তথ্য ব্যবহার করে থাকি, যা কিনা ডিফল্ট (বৈদেশিক) এবং প্রাকৃতিক সম্পদ ।
পদক্ষেপের মাধ্যমে এক সিদ্ধান্ত নেওয়া
১) আপনার তথ্য প্রস্তুত করুন
বিভিন্ন বৈশিষ্ট্য ও লক্ষ্যের লেবেল উল্লেখ করা আবশ্যক । উদাহরণস্বরূপ, সাধারণ একটি বাইনারি তথ্যসহ একটি তথ্য বিশিষ্ট মান প্রয়োগ করা আবশ্যক ।
- [[F] fotifers:[FLT] [FLT]
- [[F] t[FRE][FLT] [FLT] - এর পরিবর্তে অনুমোদন করা হয়েছে (১)
তথ্য মুছে ফেলা: অনুপস্থিত মান নভোমনStopy অপসারণ, সরিয়ে ও তারপর সংখ্যা নিশ্চিত করুন । সিদ্ধান্তটি মিশ্র ডাটা টাইপ করতে পারে কিন্তু প্রয়োগের জন্য আমরা সংখ্যা নির্ধারণের জন্য একই সঙ্গে থাকব ।
২. বিভক্তকরণ ফাংশনকে সুনির্দিষ্টভাবে উল্লেখ করুন
আমরা Giiigueedy প্রয়োগ করব. greini ইনডেক্স একটি সেটের জন্য :
[[F]:
শ্রেণীকক্ষে যে সমস্ত উপাদান রয়েছে তার মধ্যে রয়েছে ঙ্গুলি বিভাজনের জন্য, সামগ্রিক গনি হচ্ছে শিশু নোডের গড় ওজন।
৩) বিভক্ত বিশ্লেষণকে শক্তিশালী করুন
প্রতিটি বিশেষ মানের জন্য পৃথক মান। সম্ভাব্য মানগুলি হল প্রতিটি ধাপের জন্য একটি পৃথক শতাংশ। প্রতিটি সম্ভাব্য মান হল, বাঁ ও ডান দিকে (প্রতিটিম মান), বাঁদিকে এবং ডান-থেকে মধ্যে বিভক্ত, গণনা এবং সবচেয়ে ভালভাবে বিভক্ত।
৪ গাছকে রিকার্সিভভাবে সৃষ্টি করুন
তথ্যর একটি অংশে রূপান্তর করুন। এটি একটি উপস্থিত তথ্যের একটি অংশ এবং প্রতি সেকেন্ডে কোন অবস্থা দেখা দেবে না। (যেমন, সর্বোচ্চ, সর্বোচ্চ মাপ, প্রতি নোড অথবা কোনো তথ্য অর্জনের জন্য) সাহায্যে নির্মিত হলে, সকল নোডের মধ্যে নির্মিত হবে। অন্যথা, সর্বাধিক মাপ সংক্রান্ত অ্যানিমেশন তৈরি করা হবে এবং স্বাভাবিক অবস্থায়, বাঁদিকে বিভক্ত করা হবে।
অনুমান করুন
একবার গাছকে নির্মাণ করা হলে, ভবিষ্যদ্বাণী করা যায়: মূল ভাষায় শুরু করা হলে নতুন নমুনাগুলো পরীক্ষা করে দেখতে হবে এবং আপনি যে - পাতাগুলো বানিয়েছেন, সেগুলোর মূল্য পুনরায় ফিরিয়ে আনতে পারবেন ।
পাইথনে পূর্ণরূপে সম্প্রসারণ
নীচে গনি পোঁটানোর জন্য একটি সিদ্ধান্তের সামান্য বাস্তবায়নের একটি সম্পূর্ণ, সামান্যতম বাস্তবায়নের কাজ রয়েছে। এই কোডটি শেখার জন্য ব্যবহার করা হয়- এটা বড় আকারের তথ্য ধারণের জন্য যথেষ্ট নয়।
import numpy as np
from collections import Counter
class DecisionTree:
def __init__(self, max_depth=None, min_samples_split=2):
self.max_depth = max_depth
self.min_samples_split = min_samples_split
self.tree = None
def fit(self, X, y):
dataset = np.column_stack((X, y))
self.tree = self._grow_tree(dataset)
def _grow_tree(self, dataset, depth=0):
X, y = dataset[:, :-1], dataset[:, -1]
n_samples, n_features = X.shape
n_labels = len(np.unique(y))
# Stopping conditions
if (n_labels == 1 or depth == self.max_depth or n_samples < self.min_samples_split):
leaf_value = Counter(y).most_common(1)[0][0]
return {'leaf': True, 'value': leaf_value}
best_feature, best_threshold = self._best_split(dataset, n_features)
if best_feature is None:
leaf_value = Counter(y).most_common(1)[0][0]
return {'leaf': True, 'value': leaf_value}
left_idx, right_idx = self._split(dataset[:, best_feature], best_threshold)
left_subtree = self._grow_tree(dataset[left_idx], depth+1)
right_subtree = self._grow_tree(dataset[right_idx], depth+1)
return {'leaf': False,
'feature': best_feature,
'threshold': best_threshold,
'left': left_subtree,
'right': right_subtree}
def _best_split(self, dataset, n_features):
best_gini = float('inf')
best_feature, best_threshold = None, None
for feature in range(n_features):
thresholds = np.unique(dataset[:, feature])
for i in range(len(thresholds)-1):
thresh = (thresholds[i] + thresholds[i+1]) / 2
left_idx, right_idx = self._split(dataset[:, feature], thresh)
if len(left_idx) == 0 or len(right_idx) == 0:
continue
gini = self._gini_gain(dataset, left_idx, right_idx)
if gini < best_gini:
best_gini = gini
best_feature = feature
best_threshold = thresh
return best_feature, best_threshold
def _split(self, values, threshold):
left_idx = np.where(values <= threshold)[0]
right_idx = np.where(values > threshold)[0]
return left_idx, right_idx
def _gini_gain(self, dataset, left_idx, right_idx):
total = len(left_idx) + len(right_idx)
gini_left = self._gini(dataset[left_idx, -1])
gini_right = self._gini(dataset[right_idx, -1])
return (len(left_idx)/total) * gini_left + (len(right_idx)/total) * gini_right
def _gini(self, labels):
_, counts = np.unique(labels, return_counts=True)
p = counts / np.sum(counts)
return 1 - np.sum(p**2)
def predict(self, X):
return np.array([self._predict_row(x, self.tree) for x in X])
def _predict_row(self, x, node):
if node['leaf']:
return node['value']
if x[node['feature']] <= node['threshold']:
return self._predict_row(x, node['left'])
else:
return self._predict_row(x, node['right'])
ট্রি পরীক্ষা করা হচ্ছে
ক্লাসিক ইরিস ডাটাসেটের মত সহজ তথ্য ব্যবহার করো (দুটি বৈশিষ্ট্য বাইনারি বাইনারি সংখ্যা: [Fgt: 0. 0] । Codical- এর ডাটা ডাটা জানতে [FLT] সঠিকভাবে কাজ করে । আপনার ট্রির সঙ্গে সঙ্গে সঙ্গে sites (FLT) expitt-র সঠিকতা তুলনা করুন: [F]
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
data = load_iris()
X = data.data[:100] # take only first two classes (binary)
y = data.target[:100]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
tree = DecisionTree(max_depth=3)
tree.fit(X_train, y_train)
preds = tree.predict(X_test)
accuracy = np.mean(preds == y_test)
print(f'Accuracy: {accuracy:.2f}')
আপনার বৃক্ষকে উন্নত করার জন্য অগ্রসর প্রযুক্তিবিদ্যা
[ অধ্যয়ন প্রশ্নাবলি]
একটা সম্পূর্ণ বয়স্ক গাছ প্রশিক্ষণ তথ্যের মধ্যে শব্দকে রূপান্তর করতে পারে ।
অবিরাম এবং চারনিটি বৈশিষ্ট্য
ক্রমাগত বিভিন্ন বৈশিষ্ট্যের জন্য, আমরা উভয় স্তরের দূরত্বের মধ্যে দূরত্ব গণনা করতে ব্যবহার করেছি। CLAY, quotice (যেমন, লাল/ সবুজ/কালো/সাদা), প্রতিটি বিভাগ আলাদা শাখা (ম্যাল্রিলংওয়ে) হতে পারে অথবা আপনি তাদের মধ্যে বিভক্ত করে ফেলতে পারেন । অধিকাংশ আধুনিক প্রয়োগ (কিলিটারের মত) বাইনারি প্রয়োগ এমনকি বিভিন্ন বৈশিষ্ট্যের জন্য, উভয় নির্দিষ্ট আকারের এককের জন্য, উভয় দলগুলোকে বিভক্ত করে বিভক্ত করে ।
অনুপস্থিত মান পূরণ করা হচ্ছে
প্রকৃত বিশ্ব তথ্য প্রায়ই মূল্যবোধ হারিয়ে ফেলে ।
লাইব্রেরি ও অন্যান্য পাঠের সঙ্গে তুলনা করা
শিরশ্ছেদ থেকে তৈরি এই ভবনটি শিক্ষা, উৎপাদন পদ্ধতি যেমন প্রোডাকশন পদ্ধতি, চেকিতিতেন্স শিক্ষা পদ্ধতি, যা সি বাস্তবায়নের জন্য দ্রুত প্রয়োগ করে। আপনি সরকারি [এফএল: ১০) গাছপালার নথিপত্রের জন্য [এফএলটিউট] পড়তে পারেন। গভীর তত্ত্বের জন্য "মৃন্য" বইটির মূল তথ্য ও মূল তথ্য।
অন্তর্ভুক্ত
আপনি নিশ্চয়ই শিখেছেন যে, সহজ রিকার্সিভ বিভাজন কীভাবে একটি মডেল তৈরি করতে পারে । কোড লেখার মাধ্যমে আপনি এই কোডটি আরও গভীরভাবে বুঝতে পারবেন, বিভাজনের মধ্যে দিয়ে আপনি বিভিন্ন পরিবর্তন, বিভাজন ও বাণিজ্যের মধ্যে পার্থক্য খুঁজে পাবেন । পরবর্তী পদক্ষেপের মধ্যে পার্থক্য এবং এর সঙ্গে যুক্ত একটি ধাপ, আপনাকে আরও জটিল, জটিল ও উদ্ভাবনের সঙ্গে যুক্ত করতে হবে । আপনি এখানে বনের পদ্ধতি ব্যবহার করতে পারেন ।