সাইকিট-লার্নে র্যান্ডম ফরেস্ট রেজিস্ট্রার থেকে ওজন (সূত্র) রফতানি করুন


9

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

আমি যে জিনিসটি পেয়েছি তা হ'ল model.feature_importances_তবে এটি কোনও লাভ করে না।

এটি অর্জন করার কোনও উপায় আছে কি?

def performRandomForest(X_train, y_train, X_test, y_test):

    '''Perform Random Forest Regression'''

    from sklearn.ensemble  import  RandomForestRegressor

    model  =  RandomForestRegressor()
    model.fit( X_train , y_train )

    #make predictions
    expected  = y_test
    predicted  = model.predict( X_test )

    #summarize the fit of the model
    mse  = np.mean(( predicted - expected )** 2)
    accuracy = ( model.score ( X_train , y_train ))

    return model, mse, accuracy

এই মুহুর্তে, আমি এটিটি করতে ব্যবহার করি model.predict([features])তবে আমার এটি এক্সেল ফাইলে দরকার।


2
একটি এলোমেলো ফরেস্ট রেজিস্ট্রার একটি এলোমেলো বন decision trees, সুতরাং আপনি লিনিয়ার রিগ্রেশন সহ এমন সমীকরণ পাবেন না। পরিবর্তে আপনি if, then, elseচূড়ান্ত পাতাগুলিকে সংখ্যাগত মানগুলিতে পরিণত করতে একগুচ্ছ যুক্তি এবং অনেক চূড়ান্ত সমীকরণ পাবেন। এমনকি আপনি যদি গাছটি কল্পনা করতে পারেন এবং সমস্ত যুক্তি খুঁজে বের করতে পারেন তবে এগুলি একটি বড় জগাখিচুড়ি মনে হচ্ছে। আপনি যদি এক্সেলে কাজ করছেন, তবে সম্ভবত আপনার মডেলকে অ্যাজুরি ব্যবহার করে এক্সেলের প্রশিক্ষণ দেওয়ার কথা ভাবুন। যাইহোক, আমি সম্ভবত এক্সেল থেকে অজগর কল করতে হবে।
AN6U5

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


1
আপনাকে ধন্যবাদ তবে আমি এলআর-তে এইভাবে সচেতন ছিলাম। আপনি কি দয়া করে কোনও উত্তরে আপনার মন্তব্যে যোগদান করতে পারেন যাতে আমি উত্তর হিসাবে চিহ্নিত করতে পারি?
তাসোস

অন্য কারওর জন্য অন্তর্দৃষ্টি রয়েছে কিনা তা দেখার জন্য সম্ভবত কয়েক দিন এটি ছেড়ে / উত্তর না দেওয়া উপযুক্ত। ডেটা সায়েন্স স্ট্যাক এক্সচেঞ্জ স্ট্যাক ওভারফ্লোয়ের তুলনায় অনেক ছোট, সুতরাং ভাল অন্তর্দৃষ্টিপূর্ণ উত্তর পেতে মাঝে মাঝে ২-৩ দিন সময় লাগে।
AN6U5

উত্তর:



0

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


0

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

আপনি সিদ্ধান্ত_পথটি একবার বের করে নিলে, আপনি প্রশিক্ষিত র্যান্ডম ফরেস্টের "সূত্র" পেতে আপনি ট্রি ইন্টারপ্রেটার ব্যবহার করতে পারেন । আমি এই ট্রি ইন্টারপ্রেটারের সাথে পরিচিত নই, তবে মনে হয় আপনি প্রশিক্ষিত মডেলারের উপর সরাসরি কাজ করছেন, অর্থাৎ,

from treeinterpreter import treeinterpreter as ti
# fit a scikit-learn's regressor model

rf = RandomForestRegressor()

rf.fit(trainX, trainY)

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