खोज…


निकटतम पड़ोसी एल्गोरिथ्म का उपयोग करके एक बुनियादी सरल वर्गीकरण समस्या (XOR)

विचार करें कि आप XOR की लोकप्रिय समस्या के सही उत्तर की भविष्यवाणी करना चाहते हैं। आपको पता है कि XOR क्या है (जैसे [x0 X1] => y)। उदाहरण के लिए [0 0] => 0, [0 1] => [1] और ...

#Load Sickit learn data
from sklearn.neighbors import KNeighborsClassifier

#X is feature vectors, and y is correct label(To train model)
X = [[0, 0],[0 ,1],[1, 0],[1, 1]]
y = [0,1,1,0]

#Initialize a Kneighbors Classifier with K parameter set to 2
KNC = KNeighborsClassifier(n_neighbors= 2)

#Fit the model(the KNC learn y Given X)
KNC.fit(X, y)

#print the predicted result for [1 1]
print(KNC.predict([[1 1]]))

स्किटिट-सीख में वर्गीकरण

1. तय किया हुआ पेड़

बैजिंग एल्गोरिदम के साथ सबसे अच्छा प्रदर्शन करता है जिसमें उच्च विचरण होता है। एक लोकप्रिय उदाहरण निर्णय पेड़ हैं, जो अक्सर छंटाई के बिना निर्मित होते हैं।

नीचे दिए गए उदाहरण में वर्गीकरण और प्रतिगमन पेड़ एल्गोरिथ्म (DecisionTreeClassifier) के साथ BaggingClassifier का उपयोग करने का एक उदाहरण देखें। कुल 100 पेड़ बनाए गए हैं।

डेटासेट का इस्तेमाल: पीमा इंडियन्स डायबिटीज डेटा सेट

# Bagged Decision Trees for Classification
import pandas
from sklearn import cross_validation
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = pandas.read_csv(url, names=names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
num_folds = 10
num_instances = len(X)
seed = 7
kfold = cross_validation.KFold(n=num_instances, n_folds=num_folds, random_state=seed)
cart = DecisionTreeClassifier()
num_trees = 100
model = BaggingClassifier(base_estimator=cart, n_estimators=num_trees, random_state=seed)
results = cross_validation.cross_val_score(model, X, Y, cv=kfold)
print(results.mean())

उदाहरण चलाते हुए, हमें मॉडल सटीकता का एक मजबूत अनुमान मिलता है।

0.770745044429

2. यादृच्छिक वन

बेतरतीब जंगल, बगैर निर्णय के पेड़ों का विस्तार है।

प्रशिक्षण डेटासेट के नमूने प्रतिस्थापन के साथ लिए गए हैं, लेकिन पेड़ों का निर्माण एक तरह से किया गया है जो व्यक्तिगत क्लासिफायरफ़ाइलों के बीच संबंध को कम करता है। विशेष रूप से, पेड़ के निर्माण में लालच को सबसे अच्छा विभाजन बिंदु चुनने के बजाय, प्रत्येक विभाजन के लिए केवल सुविधाओं का एक यादृच्छिक सबसेट माना जाता है।

आप RandomForestClassifier वर्ग का उपयोग करके वर्गीकरण के लिए एक रैंडम फ़ॉरेस्ट मॉडल का निर्माण कर सकते हैं।

नीचे दिए गए उदाहरण में 100 पेड़ों के साथ वर्गीकरण के लिए रैंडम फॉरेस्ट का उदाहरण दिया गया है और 3 विशेषताओं के यादृच्छिक चयन से चुने गए विभाजन बिंदु हैं।

# Random Forest Classification
import pandas
from sklearn import cross_validation
from sklearn.ensemble import RandomForestClassifier
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = pandas.read_csv(url, names=names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
num_folds = 10
num_instances = len(X)
seed = 7
num_trees = 100
max_features = 3
kfold = cross_validation.KFold(n=num_instances, n_folds=num_folds, random_state=seed)
model = RandomForestClassifier(n_estimators=num_trees, max_features=max_features)
results = cross_validation.cross_val_score(model, X, Y, cv=kfold)
print(results.mean())

उदाहरण रनिंग वर्गीकरण सटीकता का एक अनुमानित अनुमान प्रदान करता है।

0.770727956254

3. AdaBoost

AdaBoost शायद पहला सफल बूस्टिंग एन्सेम्बल एल्गोरिथम था। यह आमतौर पर डाटासेट में उदाहरणों को भारित करके काम करता है कि वे वर्गीकृत करना कितना आसान या कठिन है, एल्गोरिदम को बाद के मॉडलों के निर्माण में उन पर ध्यान देने या कम ध्यान देने की अनुमति देता है।

आप AdaBoostClassifier वर्ग का उपयोग करके वर्गीकरण के लिए AdaBoost मॉडल का निर्माण कर सकते हैं।

नीचे दिए गए उदाहरण AdaBoost एल्गोरिथ्म का उपयोग करके अनुक्रम में 30 निर्णय पेड़ों के निर्माण को प्रदर्शित करता है।

# AdaBoost Classification
import pandas
from sklearn import cross_validation
from sklearn.ensemble import AdaBoostClassifier
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = pandas.read_csv(url, names=names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
num_folds = 10
num_instances = len(X)
seed = 7
num_trees = 30
kfold = cross_validation.KFold(n=num_instances, n_folds=num_folds, random_state=seed)
model = AdaBoostClassifier(n_estimators=num_trees, random_state=seed)
results = cross_validation.cross_val_score(model, X, Y, cv=kfold)
print(results.mean())

उदाहरण रनिंग वर्गीकरण सटीकता का एक अनुमानित अनुमान प्रदान करता है।

0.76045796309

4. स्टोचैस्टिक ग्रेडिंग बूस्टिंग

स्टोचैस्टिक ग्रेडिंग बूस्टिंग (जिसे ग्रैडिएंट बूस्टिंग मशीन भी कहा जाता है) सबसे परिष्कृत पहनावा तकनीकों में से एक है। यह एक ऐसी तकनीक भी है जो पहनावा के माध्यम से प्रदर्शन में सुधार के लिए उपलब्ध सर्वोत्तम तकनीकों में से एक साबित हो रही है।

आप GradientBoostingClassifier वर्ग का उपयोग करके वर्गीकरण के लिए एक ग्रेडिएंट बूस्टिंग मॉडल का निर्माण कर सकते हैं।

नीचे दिए गए उदाहरण में स्टोचैस्टिक ग्रैडिएंट बूस्टिंग को 100 पेड़ों के साथ वर्गीकरण के लिए प्रदर्शित किया गया है।

# Stochastic Gradient Boosting Classification
import pandas
from sklearn import cross_validation
from sklearn.ensemble import GradientBoostingClassifier
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = pandas.read_csv(url, names=names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
num_folds = 10
num_instances = len(X)
seed = 7
num_trees = 100
kfold = cross_validation.KFold(n=num_instances, n_folds=num_folds, random_state=seed)
model = GradientBoostingClassifier(n_estimators=num_trees, random_state=seed)
results = cross_validation.cross_val_score(model, X, Y, cv=kfold)
print(results.mean())

उदाहरण रनिंग वर्गीकरण सटीकता का एक अनुमानित अनुमान प्रदान करता है।

0.764285714286

स्रोत: http://machinelearningmastery.com/ensemble-machine-learning-algorithms-python-scikit-learn/



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow