लॉजिस्टिक रिग्रेशन क्लासिफायरफायर का एक लाभ यह है कि एक बार जब आप इसे फिट कर लेंगे, तो आप किसी भी नमूना वेक्टर के लिए संभावनाएं प्राप्त कर सकते हैं। यह साजिश के लिए और अधिक दिलचस्प हो सकता है। यहाँ एक उदाहरण का उपयोग कर scikit सीखने:
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="white")
पहले, डेटा पैदा करते हैं और प्रशिक्षण सेट करने के लिए वर्गीकारक फिट:
X, y = make_classification(200, 2, 2, 0, weights=[.5, .5], random_state=15)
clf = LogisticRegression().fit(X[:100], y[:100])
इसके बाद, मूल्यों की एक सतत ग्रिड बनाने के लिए और प्रत्येक की संभावना का मूल्यांकन (एक्स, वाई) ग्रिड में बात:
xx, yy = np.mgrid[-5:5:.01, -5:5:.01]
grid = np.c_[xx.ravel(), yy.ravel()]
probs = clf.predict_proba(grid)[:, 1].reshape(xx.shape)
अब, यह की चोटी पर एक समोच्च नक्शे के रूप में संभावना ग्रिड साजिश है और इसके अलावा परीक्षण सेट नमूने दिखाने:
01,235,
f, ax = plt.subplots(figsize=(8, 6))
contour = ax.contourf(xx, yy, probs, 25, cmap="RdBu",
vmin=0, vmax=1)
ax_c = f.colorbar(contour)
ax_c.set_label("$P(y = 1)$")
ax_c.set_ticks([0, .25, .5, .75, 1])
ax.scatter(X[100:,0], X[100:, 1], c=y[100:], s=50,
cmap="RdBu", vmin=-.2, vmax=1.2,
edgecolor="white", linewidth=1)
ax.set(aspect="equal",
xlim=(-5, 5), ylim=(-5, 5),
xlabel="$X_1$", ylabel="$X_2$")
रसद प्रतिगमन किसी भी सीमा आप चाहते हैं के आधार पर अपने वर्गीकृत नए नमूने की सुविधा देता है, तो यह स्वाभाविक एक नहीं है "निर्णय सीमा।" लेकिन, ज़ाहिर है, उपयोग करने के लिए एक आम निर्णय नियम पी = .5 है। हम यह भी सिर्फ इतना है कि समोच्च स्तर से ऊपर कोड का उपयोग कर आकर्षित कर सकते हैं:
f, ax = plt.subplots(figsize=(8, 6))
ax.contour(xx, yy, probs, levels=[.5], cmap="Greys", vmin=0, vmax=.6)
ax.scatter(X[100:,0], X[100:, 1], c=y[100:], s=50,
cmap="RdBu", vmin=-.2, vmax=1.2,
edgecolor="white", linewidth=1)
ax.set(aspect="equal",
xlim=(-5, 5), ylim=(-5, 5),
xlabel="$X_1$", ylabel="$X_2$")
मैं सही है कि आप आयात किया है 'seaborn' हूँ, लेकिन वास्तव में अपने जवाब में उपयोग नहीं किया है? मैं उस पुस्तकालय से परिचित नहीं हूं, सिर्फ यह जांच रहा हूं कि उत्तर के लिए यह आवश्यक है या नहीं। – Rhubarb
@Zhubarb: Seaborn जैसे ही आप इसे आयात करते हैं, matplotlib की कई डिफ़ॉल्ट कॉन्फ़िगरेशन ओवरराइड करता है। इसलिए यदि आपको सीबर्न सीधे प्रदान करने वाली किसी भी कार्यक्षमता की आवश्यकता नहीं है, लेकिन बस डिफ़ॉल्ट रूप से उससे बेहतर दिखने के लिए matplotlib चाहते हैं, तो आपको केवल इनपोर्ट सीबर्न करना है और matplotlib – Gus
@Gus के साथ अपने व्यवसाय के बारे में जाना है 'probs = clf.predict_probs (ग्रिड) [:, 1] .reshape (xx.shape)' कह रहा है कि 'विशेषता त्रुटि:' LogisticRegression 'ऑब्जेक्ट में कोई विशेषता नहीं है' predict_probs 'क्या मुझे कुछ याद आ रही है? –