সম্ভাব্যতা অনুমানের সাথে পুনরাবৃত্তি 10-গুণ ক্রস বৈধকরণের জন্য গড় আরওসি


15

আমি মেশিন লার্নিং অ্যালগরিদম ব্যবহার করে প্রায় 10,000 টি ক্ষেত্রে পুনরাবৃত্ত (10 বার) স্তরযুক্ত 10-গুণ ক্রস বৈধতা ব্যবহার করার পরিকল্পনা করছি। প্রতিবার পুনরাবৃত্তি বিভিন্ন এলোমেলো বীজের সাথে করা হবে।

এই প্রক্রিয়াটিতে আমি প্রতিটি মামলার সম্ভাব্যতা অনুমানের 10 টি উদাহরণ তৈরি করি। 10-ভাঁজ ক্রস বৈধতার 10 পুনরাবৃত্তির প্রত্যেকটির জন্য সম্ভাব্যতা অনুমানের 1 টি উদাহরণ

আমি কি প্রতিটি মামলার জন্য 10 টি সম্ভাবনা গড়ে তুলতে পারি এবং তারপরে একটি নতুন গড় আরওসি বক্ররেখা তৈরি করতে পারি (পুনরাবৃত্ত 10-ভাঁজ সিভি-র ফলাফলের প্রতিনিধিত্ব করে), যা অন্যান্য তুলনামূলক তুলনায় আরওসি বক্ররেখার সাথে তুলনা করা যায়?

উত্তর:


13

আপনার বিবরণ থেকে এটি নিখুঁত ধারণা দেয় বলে মনে হচ্ছে: আপনি কেবলমাত্র আরওসি বক্ররেখা গণনা করতে পারবেন না, তবে আত্মবিশ্বাসের অন্তরগুলি তৈরি করতে এর চারপাশের বৈচিত্রটিও গণনা করতে পারেন। এটি আপনার মডেলটি কতটা স্থিতিশীল তা ধারণা দেওয়া উচিত should

উদাহরণস্বরূপ, এটি পছন্দ করুন:

এখানে চিত্র বর্ণনা লিখুন

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

পুনরাবৃত্ত সিভির জন্য আপনি কেবল এটি একাধিকবার পুনরাবৃত্তি করতে পারবেন এবং সমস্ত স্বতন্ত্র ভাঁজগুলিতে মোট গড় পেতে পারেন:

এখানে চিত্র বর্ণনা লিখুন

এটি পূর্ববর্তী চিত্রের সাথে বেশ সমান, তবে গড় এবং বৈচিত্রের আরও স্থিতিশীল (অর্থাত্ নির্ভরযোগ্য) অনুমান দেয়।

প্লটটি পেতে কোডটি এখানে:

import matplotlib.pyplot as plt
import numpy as np
from scipy import interp

from sklearn.datasets import make_classification
from sklearn.cross_validation import KFold
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_curve

X, y = make_classification(n_samples=500, random_state=100, flip_y=0.3)

kf = KFold(n=len(y), n_folds=10)

tprs = []
base_fpr = np.linspace(0, 1, 101)

plt.figure(figsize=(5, 5))

for i, (train, test) in enumerate(kf):
    model = LogisticRegression().fit(X[train], y[train])
    y_score = model.predict_proba(X[test])
    fpr, tpr, _ = roc_curve(y[test], y_score[:, 1])

    plt.plot(fpr, tpr, 'b', alpha=0.15)
    tpr = interp(base_fpr, fpr, tpr)
    tpr[0] = 0.0
    tprs.append(tpr)

tprs = np.array(tprs)
mean_tprs = tprs.mean(axis=0)
std = tprs.std(axis=0)

tprs_upper = np.minimum(mean_tprs + std, 1)
tprs_lower = mean_tprs - std


plt.plot(base_fpr, mean_tprs, 'b')
plt.fill_between(base_fpr, tprs_lower, tprs_upper, color='grey', alpha=0.3)

plt.plot([0, 1], [0, 1],'r--')
plt.xlim([-0.01, 1.01])
plt.ylim([-0.01, 1.01])
plt.ylabel('True Positive Rate')
plt.xlabel('False Positive Rate')
plt.axes().set_aspect('equal', 'datalim')
plt.show()

বারবার সিভির জন্য:

idx = np.arange(0, len(y))

for j in np.random.randint(0, high=10000, size=10):
    np.random.shuffle(idx)
    kf = KFold(n=len(y), n_folds=10, random_state=j)

    for i, (train, test) in enumerate(kf):
        model = LogisticRegression().fit(X[idx][train], y[idx][train])
        y_score = model.predict_proba(X[idx][test])
        fpr, tpr, _ = roc_curve(y[idx][test], y_score[:, 1])

        plt.plot(fpr, tpr, 'b', alpha=0.05)
        tpr = interp(base_fpr, fpr, tpr)
        tpr[0] = 0.0
        tprs.append(tpr)

অনুপ্রেরণার উত্স: http://scikit-learn.org/stable/auto_exferences/model_selection/plot_roc_crossval.html


3

এটি গড় সম্ভাব্যতার পক্ষে সঠিক নয় কারণ এটি যে পূর্বাভাসগুলি যাচাই করার চেষ্টা করছেন তার প্রতিনিধিত্ব করবে না এবং বৈধতা নমুনাগুলি জুড়ে দূষণ জড়িত।

নোট করুন যে 10-ভাঁজ ক্রস-বৈধকরণের 100 পুনরাবৃত্তি পর্যাপ্ত নির্ভুলতা অর্জনের জন্য প্রয়োজন হতে পারে। অথবা ইফ্রন-গং আশাবাদ বুটস্ট্র্যাপ ব্যবহার করুন যা একই নির্ভুলতার জন্য কম পুনরাবৃত্তির প্রয়োজন (উদাহরণস্বরূপ আর rmsপ্যাকেজ validateফাংশন দেখুন)।

আরওসি বক্ররেখা কোনওভাবেই এই সমস্যার জন্য অন্তর্দৃষ্টিযোগ্য নয়। যথাযথ নির্ভুলতার স্কোরটি ব্যবহার করুন এবং এর সাথে ইন্ডেক্স (একত্রীকরণ সম্ভাবনা; এআরওসি) এর সাথে যা কার্ভের তুলনায় ডিল করা অনেক সহজ, যেহেতু এটি উইলকক্সন-মান-হুইটনি স্ট্যাটিস্টিক ব্যবহার করে সহজেই এবং দ্রুত গণনা করা হয়।


গড়পড়তা কেন সঠিক নয় তা আপনি আরও বিস্তারিতভাবে বলতে পারেন?
ডেটাডাহ '

ইতিমধ্যে বিবৃত। আপনি ক্ষেত্রটিতে যে পরিমাপটি ব্যবহার করবেন তা আপনাকে বৈধতা দিতে হবে।
ফ্র্যাঙ্ক হ্যারেল 22 ই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.