您不需要了解并使用scikit-learn中的所有算法,至少在開(kāi)始時(shí),選擇一個(gè)或兩個(gè)(或少數(shù))并僅使用這些算法。
在這篇文章中,您將看到5個(gè)監(jiān)督分類(lèi)算法應(yīng)用于scikit-learn庫(kù)提供的小標(biāo)準(zhǔn)數(shù)據(jù)集。
Logistic回歸
Logistic回歸將邏輯模型與數(shù)據(jù)擬合,并對(duì)事件的概率(0到1之間)進(jìn)行預(yù)測(cè)。
該配方顯示了邏輯回歸模型與鳶尾花數(shù)據(jù)集的擬合。因?yàn)檫@是一個(gè)多類(lèi)分類(lèi)問(wèn)題,邏輯回歸使得預(yù)測(cè)在0和1之間,所以使用了一對(duì)一方案(每個(gè)類(lèi)一個(gè)模型)。
# Logistic Regression
from sklearn import datasets
from sklearn import metrics
from sklearn.linear_model import LogisticRegression
# load the iris datasets
dataset = datasets.load_iris()
# fit a logistic regression model to the data
model = LogisticRegression()
model.fit(dataset.data, dataset.target)
print(model)
# make predictions
expected = dataset.target
predicted = model.predict(dataset.data)
# summarize the fit of the model
print(metrics.classification_report(expected, predicted))
print(metrics.confusion_matrix(expected, predicted))
樸素貝葉斯
樸素貝葉斯使用貝葉斯定理來(lái)模擬每個(gè)屬性與類(lèi)變量的條件關(guān)系。
該方法顯示了樸素貝葉斯模型與鳶尾花數(shù)據(jù)集的擬合。
# Gaussian Naive Bayes
from sklearn import datasets
from sklearn import metrics
from sklearn.naive_bayes import GaussianNB
# load the iris datasets
dataset = datasets.load_iris()
# fit a Naive Bayes model to the data
model = GaussianNB()
model.fit(dataset.data, dataset.target)
print(model)
# make predictions
expected = dataset.target
predicted = model.predict(dataset.data)
# summarize the fit of the model
print(metrics.classification_report(expected, predicted))
print(metrics.confusion_matrix(expected, predicted))
k-最近鄰
k-最近鄰(kNN)方法通過(guò)將類(lèi)似情況定位到給定數(shù)據(jù)實(shí)例(使用相似性函數(shù))并返回最相似數(shù)據(jù)實(shí)例的平均或大部分來(lái)進(jìn)行預(yù)測(cè)。kNN算法可用于分類(lèi)或回歸。
該配方顯示了使用kNN模型對(duì)鳶尾花數(shù)據(jù)集進(jìn)行預(yù)測(cè)。
# k-Nearest Neighbor
from sklearn import datasets
from sklearn import metrics
from sklearn.neighbors import KNeighborsClassifier
# load iris the datasets
dataset = datasets.load_iris()
# fit a k-nearest neighbor model to the data
model = KNeighborsClassifier()
model.fit(dataset.data, dataset.target)
print(model)
# make predictions
expected = dataset.target
predicted = model.predict(dataset.data)
# summarize the fit of the model
print(metrics.classification_report(expected, predicted))
print(metrics.confusion_matrix(expected, predicted))
分類(lèi)和回歸樹(shù)
分類(lèi)和回歸樹(shù)(CART)是通過(guò)進(jìn)行分割來(lái)構(gòu)建的,這些分割可以最好地分離正在進(jìn)行的類(lèi)或預(yù)測(cè)的數(shù)據(jù)。CART算法可用于分類(lèi)或回歸。
此配方顯示使用CART模型對(duì)鳶尾花數(shù)據(jù)集進(jìn)行預(yù)測(cè)。
# Decision Tree Classifier
from sklearn import datasets
from sklearn import metrics
from sklearn.tree import DecisionTreeClassifier
# load the iris datasets
dataset = datasets.load_iris()
# fit a CART model to the data
model = DecisionTreeClassifier()
model.fit(dataset.data, dataset.target)
print(model)
# make predictions
expected = dataset.target
predicted = model.predict(dataset.data)
# summarize the fit of the model
print(metrics.classification_report(expected, predicted))
print(metrics.confusion_matrix(expected, predicted))
支持向量機(jī)
支持向量機(jī)(SVM)是一種在轉(zhuǎn)換后的問(wèn)題空間中使用點(diǎn)的方法,它最好將類(lèi)分成兩組。一對(duì)一方法支持多個(gè)類(lèi)的分類(lèi)。SVM還通過(guò)使用最小允許誤差量對(duì)函數(shù)建模來(lái)支持回歸。
該配方顯示了使用SVM模型對(duì)鳶尾花數(shù)據(jù)集進(jìn)行預(yù)測(cè)。
# Support Vector Machine
from sklearn import datasets
from sklearn import metrics
from sklearn.svm import SVC
# load the iris datasets
dataset = datasets.load_iris()
# fit a SVM model to the data
model = SVC()
model.fit(dataset.data, dataset.target)
print(model)
# make predictions
expected = dataset.target
predicted = model.predict(dataset.data)
# summarize the fit of the model
print(metrics.classification_report(expected, predicted))
print(metrics.confusion_matrix(expected, predicted))