• Regression tree (CART) and classification এর মৌলিক বিষয় সমূহ।

    Regression tree (CART) and classification এর মৌলিক বিষয় সমূহ।

     

    CART এছাড়াও একটি predictive mode যা অন্যান্য labeled variable গুলির উপর ভিত্তি করে ভেরিয়েবল সন্ধান করতে সহায়তা করে।

    আপনি হয়তো দীর্ঘ সময় ধরে tree মডেল ব্যবহার করছেন অথবা একজন নতুন, কিন্তু, আপনি কি কখনো ভেবে দেখেছেন যে এটি আসলে কিভাবে কাজ করে এবং কিভাবে এটি অন্যান্য অ্যালগরিদম থেকে আলাদা? এখানে, আমি আমার উপলব্ধির জন্য কিছু অংশ শেয়ার করছি।

    আরও পরিষ্কার হওয়ার জন্য tree মডেলগুলি যদি অন্য কোনও tree মডেল কে প্রশ্ন জিজ্ঞাসা করে ফলাফলের predict/পূর্বাভাস দেয়।

     গাছ মডেল ব্যবহার দুটি প্রধান সুবিধা আছে,

    1.        তারা ডেটাসেটে non-linearity ক্যাপচার করতে সক্ষম।

    2.        Tree মডেলগুলি ব্যবহার করার সময় ডেটা Standardization মানের প্রয়োজন হয় না। কারন তারা কোনও euclidean /ইউক্যালিডিয়ান (জ্যামিতির সাথে সম্পর্কিত )দূরত্ব বা ডেটাগুলির মধ্যে other measuring factors গুলি গণনা করে না।

     

    Nuts and Bolts of Trees



     

     

    উপরে দেখানো হয়েছে Decision Tree Classifier একটি ছবিপ্রতিটি রাউন্ড Nodes নামে পরিচিত। প্রতিটি Nodes একটি লেবেল করা চলকের/labeled variable উপর ভিত্তি করে অন্য একটি কে ধারা থাকবে। এই প্রশ্নের উপর ভিত্তি করে ইনপুটের প্রতিটি উদাহরণ একটি নির্দিষ্ট leaf-node নির্দেশ/রুট করা হবে যা চূড়ান্ত ভবিষ্যদ্বাণী কে বলবে। তিন ধরনের নোড আছে

    1.        Root Node/রুট নোড:  কোন পেরেন্ট নোড নেই, এবং প্রশ্নের উপর ভিত্তি করে দুটি শিশু নোড দেয়   

                     doesn’t have any parent node, and gives two children nodes based on the question

    2.        Internal Node/অভ্যন্তরীণ নোড: এটি তে পেরেন্ট নোড থাকবে, এবং দুটি সন্তান নোড দেয়।  it will have a parent node, and gives two children nodes

    3.        Leaf Node/লিফ নোড: এটি তে পেরেন্ট নোড থাকবে, কিন্তু কোন সন্তান নোড থাকবে না it will also have a parent node, but won’t have any children nodes

     

    আমাদের স্তরের সংখ্যা max_depth নামে পরিচিত। উপরের নকশায়  max_depth = 3max_depth বাড়ার সাথে সাথে, মডেল জটিলতাও বৃদ্ধি পাবে। আমরা প্রশিক্ষণ দেওয়ার সময়। যদি আমরা এটি বৃদ্ধি। training error /প্রশিক্ষণের ত্রুটি সর্বদা হ্রাস পাবে বা একই থাকবে।  তবে এটি কখনও কখনও পরীক্ষার ত্রুটি বাড়িয়ে তুলতে পারে। যখন আমরা প্রশিক্ষণ যদি আমরা এটা বৃদ্ধি করি, প্রশিক্ষণ ত্রুটি সবসময় নিচে নেমে যাবে অথবা একই থাকবে। কিন্তু এটা কখনও কখনও পরীক্ষার ত্রুটি বাড়াতে পারে। তাই আমাদের এই মডেলের জন্য max_depth নির্বাচন করার সময় পছন্দসই ভাবে বেছে নিতে হবে।

     

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



    Equation of IG for Classification Tree (PC: Data Camp)



    Equation of IG for Classification Tree (PC: Data Camp)

     

    নাম নিজেই বলে, CART এর লক্ষ্য হচ্ছে তার লেবেল যুক্ত মানের উপর ভিত্তি করে কোন শ্রেণীর ইনপুট উদাহরণ সম্পর্কে predict করা।  এটা সম্পন্ন করার জন্য এটি Decision Boundaries ব্যবহার করে Decision Regions তৈরি করবে। কল্পনা করুন আমাদের একটি 2D ডাটা সেট আছে,

    Image for post

    এইভাবে, যদি প্রতিটি নোড অন্য প্রশ্নর উপর ভিত্তি করে আমাদের multidimensional dataset কে Decision Regions আলাদা করে দিতে পারে। CART মডেল গুলি রৈখিক মডেল চেয়ে আরো সঠিক সিদ্ধান্ত অঞ্চল খুঁজে পেতে পারে এবং CART দ্বারা decision regions সাধারণত rectangular shaped  মত য়ে থাকে ,কারণ সিদ্ধান্ত গ্রহণের প্রতিটি নোডে শুধুমাত্র একটি feature involved /জড়িত। আপনি এটা নিচে কল্পনা করতে পারেন

    Image for post

    Classification Tree

    #use a seed value for reusability

    SEED = 1

    # Import DecisionTreeClassifier from sklearn.tree

    from sklearn.tree import DecisionTreeClassifier

    # Instantiate a DecisionTreeClassifier

    # You can specify other parameters like criterion refer sklearn    documentation for Decision tree. or try dt.get_params()

    dt = DecisionTreeClassifier(max_depth=6, random_state=SEED)

    # Fit dt to the training set

    dt.fit(X_train, y_train)

    # Predict test set labels

    y_pred = dt.predict(X_test)

    # Import accuracy_score

    from sklearn.metrics import accuracy_score

    # Predict test set labels

    y_pred = dt.predict(X_test)

    # Compute test set accuracy 

    acc = accuracy_score(y_pred, y_test)

    print("Test set accuracy: {:.2f}".format(acc))

     

    Regression Tree

     

    # Import DecisionTreeRegressor from sklearn.tree

    from sklearn.tree import DecisionTreeRegressor

    # Instantiate dt

    dt = DecisionTreeRegressor(max_depth=8,

                  min_samples_leaf=0.13,

                 random_state=3)

    # Fit dt to the training set

    dt.fit(X_train, y_train)

    # Predict test set labels

    y_pred = dt.predict(X_test)

    # Compute mse

    mse = MSE(y_test, y_pred)

    # Compute rmse_lr

    rmse = mse**(1/2)

    # Print rmse_dt

    print('Regression Tree test set RMSE: {:.2f}'.format(rmse_dt))

     

    আশা করি এই নিবন্ধটি দরকারী। 



    Mostofa Zaman Badal
  • 0 comments:

    Post a Comment

    New Research

    Attention Mechanism Based Multi Feature Fusion Forest for Hyperspectral Image Classification.

    CBS-GAN: A Band Selection Based Generative Adversarial Net for Hyperspectral Sample Generation.

    Multi-feature Fusion based Deep Forest for Hyperspectral Image Classification.

    ADDRESS

    388 Lumo Rd, Hongshan, Wuhan, Hubei, China

    EMAIL

    contact-m.zamanb@yahoo.com
    mostofa.zaman@cug.edu.cn

    TELEPHONE

    #
    #

    MOBILE

    +8615527370302,
    +8807171546477