लॉजिस्टिक रिग्रेशन को प्रशिक्षित करने का एक तरीका स्टोचस्टिक ग्रेडिएंट डीसेंट का उपयोग करके है, जो स्किटिट-लर्न को एक इंटरफ़ेस प्रदान करता है।
मैं जो करना चाहूंगा, वह स्किट-लर्न का SGDClassifier लेगा और यहां लॉजिस्टिक रिग्रेशन के समान है । हालाँकि, मुझे कुछ मशीन सीखने की वृद्धि याद आ रही है, क्योंकि मेरे स्कोर समकक्ष नहीं हैं।
यह मेरा वर्तमान कोड है। मुझे SGDClassifier में क्या याद आ रहा है जो लॉजिस्टिक रिग्रेशन के समान परिणाम देगा?
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.linear_model import SGDClassifier
import numpy as np
import pandas as pd
from sklearn.cross_validation import KFold
from sklearn.metrics import accuracy_score
# Note that the iris dataset is available in sklearn by default.
# This data is also conveniently preprocessed.
iris = datasets.load_iris()
X = iris["data"]
Y = iris["target"]
numFolds = 10
kf = KFold(len(X), numFolds, shuffle=True)
# These are "Class objects". For each Class, find the AUC through
# 10 fold cross validation.
Models = [LogisticRegression, SGDClassifier]
params = [{}, {"loss": "log", "penalty": "l2"}]
for param, Model in zip(params, Models):
total = 0
for train_indices, test_indices in kf:
train_X = X[train_indices, :]; train_Y = Y[train_indices]
test_X = X[test_indices, :]; test_Y = Y[test_indices]
reg = Model(**param)
reg.fit(train_X, train_Y)
predictions = reg.predict(test_X)
total += accuracy_score(test_Y, predictions)
accuracy = total / numFolds
print "Accuracy score of {0}: {1}".format(Model.__name__, accuracy)
मेरा आउटपुट:
Accuracy score of LogisticRegression: 0.946666666667
Accuracy score of SGDClassifier: 0.76