您不需要了解并使用scikit-learn中的所有算法,至少在开始时,选择一个或两个(或少数)并仅使用这些算法。
在这篇文章中,您将看到5个监督分类算法应用于scikit-learn库提供的小标准数据集。
Logistic回归
Logistic回归将逻辑模型与数据拟合,并对事件的概率(0到1之间)进行预测。
该配方显示了逻辑回归模型与鸢尾花数据集的拟合。因为这是一个多类分类问题,逻辑回归使得预测在0和1之间,所以使用了一对一方案(每个类一个模型)。
# 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))
朴素贝叶斯
朴素贝叶斯使用贝叶斯定理来模拟每个属性与类变量的条件关系。
该方法显示了朴素贝叶斯模型与鸢尾花数据集的拟合。
# 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)方法通过将类似情况定位到给定数据实例(使用相似性函数)并返回最相似数据实例的平均或大部分来进行预测。kNN算法可用于分类或回归。
该配方显示了使用kNN模型对鸢尾花数据集进行预测。
# 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))
分类和回归树
分类和回归树(CART)是通过进行分割来构建的,这些分割可以最好地分离正在进行的类或预测的数据。CART算法可用于分类或回归。
此配方显示使用CART模型对鸢尾花数据集进行预测。
# 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))
支持向量机
支持向量机(SVM)是一种在转换后的问题空间中使用点的方法,它最好将类分成两组。一对一方法支持多个类的分类。SVM还通过使用最小允许误差量对函数建模来支持回归。
该配方显示了使用SVM模型对鸢尾花数据集进行预测。
# 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))
网友评论