Skip to content

Latest commit

 

History

History
179 lines (134 loc) · 8.04 KB

get-your-hands-dirty-with-scikit-learn-now.md

File metadata and controls

179 lines (134 loc) · 8.04 KB

scikit-learn 中的机器学习算法秘籍

原文: https://machinelearningmastery.com/get-your-hands-dirty-with-scikit-learn-now/

你必须弄脏你的手。

您可以阅读所有博客文章并观看世界上的所有视频,但在您开始练习之前,您实际上并不会真正开始学习机器。

scikit-learn Python 库很容易启动和运行。尽管如此,我看到很多初学者犹豫不决。在这篇博文中,我想给出一些使用 scikit-learn 进行一些监督分类算法的非常简单的例子。

mean-shift clustering algorithm

Scikit-Learn Recipes

您不需要了解并使用 scikit-learn 中的所有算法,至少在开始时,选择一个或两个(或少数)并仅使用这些算法。

在这篇文章中,您将看到 5 个监督分类算法的秘籍应用于 scikit-learn 库提供的小标准数据集。

秘籍是有原则的。每个例子是:

  • Standalone :每个代码示例都是一个独立,完整且可执行的秘籍。
  • Just Code :每个秘籍的重点都放在代码上,对机器学习理论的阐述很少。
  • 简单:秘籍提供了常见的用例,这可能是你想要做的。
  • 一致:所有代码示例都是一致的,并遵循相同的代码模式和样式约定。

秘籍不会探索给定算法的参数。它们提供了一个框架,您可以将其复制并粘贴到文件,项目或 python REPL 中并立即开始播放。

这些秘籍向您展示了您现在可以开始练习 scikit-learn。别推迟了。

逻辑回归

逻辑回归将逻辑模型与数据拟合,并对事件的概率(0 到 1 之间)做出预测。

该秘籍显示了逻辑回归模型与虹膜数据集的拟合。因为这是一个多分类问题,逻辑回归使得预测在 0 和 1 之间,所以使用了一对一方案(每个类一个模型)。

Logistic Regression Python

# 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))

有关更多信息,请参阅 逻辑回归的 API 参考,以获取有关配置算法参数的详细信息。另请参阅用户指南逻辑回归部分。

朴素贝叶斯

朴素贝叶斯使用贝叶斯定理来模拟每个属性与类变量的条件关系。

该秘籍显示了朴素贝叶斯模型与虹膜数据集的拟合。

Gaussian Naive Bayes Python

# 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))

有关配置算法参数的详细信息,请参阅高斯朴素贝叶斯的 API 参考。另请参阅用户指南Naive Bayes 部分。

k-最近邻

k-最近邻(kNN)方法通过将类似情况定位到给定数据实例(使用相似性函数)并返回最相似数据实例的平均或大部分来做出预测。 kNN 算法可用于分类或回归。

该秘籍显示了使用 kNN 模型对虹膜数据集做出预测。

k-Nearest Neighbor Python

# 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))

有关配置算法参数的详细信息,请参阅 k-Nearest Neighbor 的 API 参考。另请参阅用户指南k-Nearest Neighbor 部分。

分类和回归树

分类和回归树(CART)是通过进行分割来构建的,这些分割可以最好地分离正在进行的类或预测的数据。 CART 算法可用于分类或回归。

此秘籍显示使用 CART 模型对虹膜数据集做出预测。

Decision Tree Classifier Python

# 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))

有关更多信息,请参阅 CART 的 API 参考,以获取有关配置算法参数的详细信息。另请参阅用户指南决策树部分。

支持向量机

支持向量机(SVM)是一种在转换后的问题空间中使用点的方法,它最好将类分成两组。一对一方法支持多个类的分类。 SVM 还通过使用最小允许误差量对函数建模来支持回归。

该秘籍显示了使用 SVM 模型对虹膜数据集做出预测。

Support Vector Machine Python

# 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))

有关更多信息,请参阅 SVM 的 API 参考,以获取有关配置算法参数的详细信息。另请参阅用户指南SVM 部分。

摘要

在这篇文章中,您已经看到了 5 个独立的秘籍,展示了一些最受欢迎和最强大的监督分类问题。

每个示例都少于 20 行,您可以立即复制和粘贴并开始使用 scikit-learn。停止阅读并开始练习。选择一个秘籍并运行它,然后开始播放参数,看看它对结果有什么影响。