ग्राहक मंथन की भविष्यवाणी करने के लिए निर्णय ट्री क्लासिफायर उदाहरण
अवलोकन
] डेटासेट में
आयु , मासिक शुल्क , और ग्राहक सेवा कॉल जैसी विशेषताएं शामिल हैं, यह भविष्यवाणी करने के लक्ष्य के साथ कि कोई ग्राहक मंथन करेगा या नहीं।
]
उपयोग की गई प्रौद्योगिकियां
]
]
]
-
]
कदम बताए
-
1। आवश्यक पुस्तकालयों को आयात करें
-
पीडी के रूप में पंडों का आयात करें
PLT के रूप में matplotlib.pyplot आयात करें
आयात चेतावनी
sklearn.model_selection आयात train_test_split से
sklearn.tree आयात निर्णय लेने के लिए
sklearn.metrics आयात सटीकता_स्कोर से
Sklearn आयात पेड़ से
-
]
इसका उपयोग डेटा हेरफेर और डेटाफ्रेम प्रारूप में डेटा लोड करने के लिए किया जाता है। DataFrames आपको टेबल (पंक्तियों और कॉलम) जैसे संरचित डेटा को व्यवस्थित और हेरफेर करने की अनुमति देता है।
]
यह एक प्लॉटिंग लाइब्रेरी है जिसका उपयोग डेटा की कल्पना करने के लिए किया जाता है। यहां, यह निर्णय पेड़ को रेखांकन के लिए प्लॉट करने के लिए उपयोग किया जाता है, जो यह समझने में मदद करता है कि पेड़ के प्रत्येक नोड पर निर्णय कैसे किए जाते हैं।
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
चेतावनी मॉड्यूल का उपयोग चेतावनी को दबाने या संभालने के लिए किया जाता है। इस कोड में, हम आउटपुट को साफ और पठनीय रखने के लिए अनावश्यक चेतावनियों की अनदेखी कर रहे हैं। -
]
] प्रशिक्षण डेटा का उपयोग मॉडल को फिट करने के लिए किया जाता है, और परीक्षण डेटा का उपयोग इसके प्रदर्शन का मूल्यांकन करने के लिए किया जाता है। -
] निर्णय पेड़ सुविधाओं के आधार पर निर्णयों का एक पेड़ जैसा मॉडल बनाकर काम करते हैं।
]
-
]
2। चेतावनी।
-
] यह तब सहायक हो सकता है जब आप मॉडल चला रहे हों और आउटपुट को अव्यवस्थित करने के लिए चेतावनी (जैसे कि पदावनत कार्यों के बारे में) नहीं चाहते हैं।
3।
एक सिंथेटिक डेटासेट बनाना
-
डेटा = {
'ग्राहक': रेंज (1, 101), # प्रत्येक ग्राहक के लिए अद्वितीय आईडी
'आयु': [20, 25, 30, 35, 40, 45, 50, 55, 60, 65]*10, # ग्राहकों की आयु
'मासिकचार्ज': [50, 60, 70, 80, 90, 100, 110, 120, 130, 140]*10, # मासिक बिल राशि
'CustomerServiceCalls': [1, 2, 3, 4, 0, 1, 2, 3, 4, 0]*10, # ग्राहक सेवा कॉल की संख्या
'मंथ': ['नहीं', 'नहीं', 'हां', 'नहीं', 'हां', 'नहीं', 'हां', 'हां', 'नहीं', 'हां']*10 # मंथन स्थिति
}
df = pd.DataFrame (डेटा)
प्रिंट (df.head ())
-
यहाँ, हम परियोजना के लिए एक सिंथेटिक डेटासेट बनाते हैं। यह डेटासेट एक टेलीकॉम कंपनी के लिए ग्राहक की जानकारी का अनुकरण करता है, जिसमें उम्र, मासिकचार्ज, CustomerViceCalls, और लक्ष्य चर मंथन (चाहे ग्राहक मंथन या नहीं) जैसी सुविधाएँ हैं।
-
ग्राहक : प्रत्येक ग्राहक के लिए अद्वितीय पहचानकर्ता।
-
आयु : ग्राहक की आयु।
-
]
]
]
-
]
4।
सुविधाओं और लक्ष्य चर में डेटा विभाजन
]
y = df ['मंथ'] # लक्ष्य चर
] इस मामले में, इसमें आयु, मासिकचार्ज, और CustomerServiceCalls शामिल हैं।
] यहां, यह मंथन कॉलम है, जो इंगित करता है कि कोई ग्राहक मंथन करेगा या नहीं।
warnings.filterwarnings("ignore")
5। - डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करना
]
]
]
]
data = {
'CustomerID': range(1, 101), # Unique ID for each customer
'Age': [20, 25, 30, 35, 40, 45, 50, 55, 60, 65]*10, # Age of customers
'MonthlyCharge': [50, 60, 70, 80, 90, 100, 110, 120, 130, 140]*10, # Monthly bill amount
'CustomerServiceCalls': [1, 2, 3, 4, 0, 1, 2, 3, 4, 0]*10, # Number of customer service calls
'Churn': ['No', 'No', 'Yes', 'No', 'Yes', 'No', 'Yes', 'Yes', 'No', 'Yes']*10 # Churn status
}
df = pd.DataFrame(data)
print(df.head())
plt.figure (FigSize = (12, 8))
tree.plot_tree (clf, felled = true, feature_names = ['आयु', 'मासिक चार्ज', 'customerservicecalls'], class_names = ['no churn', 'churn'])
plt.show ()
] भरा हुआ = सच्चा तर्क क्लास लेबल (मंथन/नो मंथन) के आधार पर नोड्स को रंग देता है।
warnings.filterwarnings("ignore")
]
]
-
]
कोड चलाना
-
रिपॉजिटरी को क्लोन करें या स्क्रिप्ट डाउनलोड करें।
निर्भरता स्थापित करें:
]
]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)