带你入门常见的机器学习分类算法——逻辑回归、朴素贝叶斯、KNN、SVM、决策树.doc
《带你入门常见的机器学习分类算法——逻辑回归、朴素贝叶斯、KNN、SVM、决策树.doc》由会员分享,可在线阅读,更多相关《带你入门常见的机器学习分类算法——逻辑回归、朴素贝叶斯、KNN、SVM、决策树.doc(6页珍藏版)》请在三一文库上搜索。
1、带你入门常见的机器学习分类算法逻辑回归、朴素贝叶斯、KNN、SVM、决策树【导读】众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机器学习库。它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度增强,k-means和DBSCAN,旨在与Python数值和科学库NumPy和SciPy互操作。本文将带你入门常见的机器学习分类算法逻辑回归、朴素贝叶斯、KNN、SVM、决策树。逻辑回归 (Logistic regression)逻辑回归,尽管他的名字包含回归,却是一个分类而不是回归的线性模型。逻辑回归在文献中也称为logit回归
2、,最大熵分类或者对数线性分类器。下面将先介绍一下sklearn中逻辑回归的接口:class sklearn.linear_model.LogisticRegression(penalty=l2, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver=warn, max_iter=100, multi_class=warn, verbose=0, warm_start=False, n_jobs=None)常用参数讲解
3、:penalty:惩罚项。一般都是l1或者l2。dual:这个参数仅适用于使用liblinear求解器的l2惩罚项。 一般当样本数大于特征数时,这个参数置为False。C:正则化强度(较小的值表示更强的正则化),必须是正的浮点数。solver:参数求解器。一般的有newton-cg, lbfgs, liblinear, sag, saga。multi_class:多分类问题转化,如果使用ovr,则是将多分类问题转换成多个二分类为题看待;如果使用multinomial,损失函数则会是整个概率分布的多项式拟合损失。不常用的参数这里就不再介绍,想要了解细节介绍,可以sklearn的官网查看。案例:这
4、里我使用sklearn内置的数据集iris数据集,这是一个三分类的问题,下面我就使用逻辑回归来对其分类:from sklearn.datasets import load_irisfrom sklearn.linear_model import LogisticRegressionX, y = load_iris(return_X_y=True)clf = LogisticRegression(random_state=0, solver=lbfgs, multi_class=multinomial).fit(X, y)上面我就训练好了一个完整的逻辑回归模型,我们可以用predict这个函数对
5、测试集进行预测。clf.predict(X:2, :)如果想知道预测的概率,可以通过predict_proba这个函数来进行预测。clf.predict_proba(X:2, :)如果想知道我们预测的准确性,可以通过score这个函数来判断我们的模型好坏。clf.score(X, y)朴素贝叶斯朴素贝叶斯方法是一组基于贝叶斯定理的监督学习算法,在给定类变量值的情况下,朴素假设每对特征之间存在条件独立性。下面我将介绍几种朴素贝叶斯的方法。1、高斯朴素贝叶斯 (GaussianNB)高斯朴素贝叶斯的原理可以看这篇文章:http:/i.stanford.edu/pub/cstr/reports/cs
6、/tr/79/773/CS-TR-79-773.pdf这里,我将介绍如何使用sklearn来实现GaussianNB。from sklearn import datasetsiris = datasets.load_iris()from sklearn.naive_bayes import GaussianNBgnb = GaussianNB()y_pred = gnb.fit(iris.data, iris.target).predict(iris.data)print(Number of mislabeled points out of a total %d points : %d % (
7、iris.data.shape0,(iris.target != y_pred).sum()2、多项式朴素贝叶斯 (MultinomialNB/MNB)这里我随机生成一组数据,然后使用MultinomialNB算法来学习。import numpy as npX = np.random.randint(50, size=(1000, 100)y = np.random.randint(6, size=(1000)from sklearn.naive_bayes import MultinomialNBclf = MultinomialNB()clf.fit(X, y)print(clf.pred
8、ict(X2:3)3、 互补朴素贝叶斯 (ComplementNB/CMB)ComplementNB是标准多项式朴素贝叶斯(MNB)算法的一种改进,特别适用于不平衡数据集。具体来说,ComplementNB使用来自每个类的补充的统计信息来计算模型的权重。CNB的发明者通过实验结果表明,CNB的参数估计比MNB的参数估计更稳定。此外,在文本分类任务上,CNB通常比MNB表现得更好(通常是相当大的优势)。CNB的sklearn接口:class sklearn.naive_bayes.ComplementNB(alpha=1.0, fit_prior=True, class_prior=None,
9、norm=False)常用参数讲解:alpha:加性(拉普拉斯/Lidstone)平滑参数(无平滑为0)。fit_prior:是否学习类先验概率。若为假,则使用统一先验。class_prior:类的先验概率。如果指定,则不根据数据调整先验。norm:是否执行权重的第二次标准化。案例:import numpy as npX = np.random.randint(50, size=(1000, 100)y = np.random.randint(6, size=(1000)from sklearn.naive_bayes import ComplementNBclf = ComplementNB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 入门 常见 机器 学习 分类 算法 逻辑 回归 朴素 贝叶斯 KNN SVM 决策树
链接地址:https://www.31doc.com/p-3434253.html