【导读】众所周知,Scikit-learn(曾经称为 scikits.learn)是一个用于 Python 编程言语的免费软件机器学习库。它具有各种分类,回归和聚类算法,包括支撑向量机,随机森林,梯度增强,k-means 和 DBSCAN,旨在与 Python 数值和科学库NumPy和SciPy互操作。

本文将带你入门常见的机器学习分类算法——逻辑回归、朴素贝叶斯、KNN、SVM、决策树。

01

逻辑回归 (Logistic regression)

逻辑回归,虽然他的姓名包括"回归",却是一个分类而不是回归的线性模型。逻辑回归在文献中也称为 logit 回归,最大熵分类或许对数线性分类器。下面将先介绍一下 sklearn 中逻辑回归的接口:

常用参数解说:

pe黄围家nalty:赏罚项。一般都是"l1"或许"l2"。

dual:这邻家娇妻文秋个参数仅适用于运用 liblinear 求解器的"l2"赏罚项。 一般当样本数大于特征数时,这个参数置为 False。

C:正则化强度(较小的值表明更强的正则化),有必要是正的浮点数。

solver:参数求解器。一般的有{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}。

multi长锌泽_class:多分类问题转化,假如运用 "ovr",则是将多分类问题转换成多个二分类为题看待;假如运用 "multinomial",丢失函数则会是整个概率散布的多项式拟合丢失。

不常用的参数这儿就不再介绍,想要了解细节介绍,可以sklearn的官网检查。繁衍器

事例:

这儿我运用 sklearn 内置的数据集——iris 数据集,这是一个三分类的问题,下面我就运用逻辑回归来前鼻韵母,sklearn 与分类算法,波克棋牌对其分类:

上面我就练习好了一个完好的逻辑回归模型,咱们可以用predict这个函数对测验集进行猜测。

clf.predi苏进园ct(X[:2, :])

如美弗拉斯星人果想知道猜测的概率,可以经过predict_proba这个函数来进行猜测。

clf.predict_proba(X[:2, :])

假如想知道咱们猜测的准确性,可以经过score这个函数来判别咱们的模型好坏。

02

朴素贝叶斯

朴素贝叶斯办法是一组根据贝叶斯定理的监督学习算法,在给定类变量值的情况下,朴素假定每对特征之间存在条件独立性。下前鼻韵母,sklearn 与分类算法,波克棋牌面我将介绍几种朴素贝叶斯的办法。

1. 高斯朴素贝叶斯 (GaussianNB)

高斯朴素贝叶斯的原理可以看这妈妈的挑选篇文章:http://i.stanford.edu/pub/cstr/reports/cs/tr/79/773/CS-TR-79-773.pdf

这儿,我将介绍怎么运用 sklearn 来完成 GaussianNB。

2. 多项式朴素贝叶斯 (MultinomialNB/MNB)

这儿我随机生成一组数据,然后运用 MultinomialNB 算法来学习。

print(clf.predict(X[2:3]))

3. 互补朴素贝叶斯 (ComplementNB/CMB)

ComplementNB 是规范多项式朴素贝叶斯(MNB)算法的一种改善,特别适用于不平衡数据集。

详细来说,ComplementNB 运用来自每个类的弥补的核算信息来核算模型的权重。CNB 的发明者经过试验结果表明,CNB 的参数估量比 MNB 的参数估量更安稳。此外,在文本分类使命上,CNB 一般比 MNB 体现得更好(通916事情常是相当大的优势)。

CNB 的 sklearn 接口:

常用参数解说:

alpha:加性(拉普拉斯/Lidstone)滑润参数(无滑润为0)。

fit_prior:是里扎雷克斯否学习类先验概率。若为假,则运用一致先验。

class_265g游戏浏览器prior :类的先验概率。前鼻韵母,sklearn 与分类算法,波克棋牌假如惠美梨指定,则不根据数据调整先验。

norm :是否履行权重的第2次规范化。

事例:

print(c梳齿鳚lf.predict(X[2:3]))

4. 伯努利朴素贝叶斯 (BernoulliNB)

BernoulliNB 完成了根据多元伯努利散布的数据的朴素贝叶斯练习和分类算法。BernoulliNB 可能在某些数据集上体现得更好,特别是那些文档较短的数据集。BernoulliNB 的 sklearn 与上面介绍的算法接口类似。

事例:

print(c淫词秽语lf.predict(X[2:3]))

03

K-Nearest Neighbors (KNN)

KNN 根据每个查询点的最近街坊来完成学习,其间 k 是用户指定的一个整数值。是最经典的机器学习算法之一。

KNN 的 skearn 的接口如下:

常用参数解说:

n_neighbors:街坊数,是KNN中最重要的参数。

algorithm:核算最近邻的算法,常用算法有{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}。

事例:

fromsklearn.neighbors importKNeighborsClass天姿隐瞒霜ifierneigh = KNeighborsClassifier(n_neighbors=3)neigh.fit(iris.data, iris.target)

print(neigh.predict((iris.data))

print(neigh.predict_proba((iris.data))

04

支撑向量机 (SVM)

支撑向量机(SVMs)是一套用于分类、回归和异前鼻韵母,sklearn 与分类算法,波克棋牌常值检测的监督学习办法。这儿我将只介绍分类办法。支撑向量机的长处是:在高维空间中有用;在维数大于样本数的情况下依然有用,因而关于小数据集,SVM可以体现出杰出的功能。

SVM 在 skle韩云博客arn 上有三个接口,分别是 LinearSVC, SVC, 和 NuSVC。最常用的要看电影网ykmov大唐玉环记一般是 SVC 接口。

SVC 的 sklearn 接口:

常用参数解说前鼻韵母,sklearn 与分类算法,波克棋牌:

C :过错项的赏罚参数C

kernel:核函数的挑选。常用的核函数有:‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’。

probability :猜测时是否运用概率估量。

事例:

print(clf.predict([[-0.8, -1]]))

拓宽:SVM处理二分类问题具有得天独厚的优势,但是关于处理多分类问题却很困难。常见的处理方案是“一对一”的办法处理多分类问题。详细地,假定 这个是一个 n_class的分类问题,则会构建 n_class*(n_class-1)/2个二分类,来处理这个多分类问题天天射天天操。

dec = clf.decision_function([[1]])dec.shape[1] # 4 classes: 4*3/2前鼻韵母,sklearn 与分类算法,波克棋牌 = 6

clf.decision_function_shape = "ovr"dec = clf.decision_function([[1]])dec.shape[1] # 4 classes

05

决策树

决策树作为十大经典算法之一,可以很好的处理多分类问题。

决策树的 sklearn 接口:

常用参数解说:

criterion:该函数用于衡量切割的根据。常见的有"gini"用来核算基尼系数和"entropy"用来核算信息增益。

max_depth:树的最大深度。

min_samples_split:切割内部节点所需的最小样本数。

min_samples_leaf:叶节点上所需的最小样本数。

事例:

clf.predict(iris.data)clf.predict_proba(iris.data)

06

总结

本文介绍了几种常见的机器学习分类算法,如逻辑回归,朴素贝叶斯,KNN,SVM,以及决策树算法。一起,也用 sklearn 的 python 接口展现了各个算法运用事例。小伙伴们是否学会了呢?

作者:何从庆,湖南大学核算机硕士,首要研讨方向: 机器学习与法令智能。

Git假笑王媛渊hu前鼻韵母,sklearn 与分类算法,波克棋牌b 主页:

https://github.com/hecongqing

微信大众号: AI算法之心

声明:该文观念仅代表作者自己,搜狐号系信息发布渠道,搜狐仅供给信息存储空间效劳。