《scikit-learn机器学习常用算法原理及编程实战》 作者·黄永昌编著,博客:http://kamidox.com/
PDF版本下载地址: 链接: https://pan.baidu.com/s/18H1UMHvup76D9XwXGho-HQ 提取码: 6qb9 复制这段内容后打开百度网盘手机App,操作更方便哦
- https://github.com/TianHao1991/scikit-learn-study
- https://github.com/540117253/code-of-book-sklearn-machine-learning
- https://github.com/why2lyj/Machine-Learning-by-scikit-learn-Algorithms-and-Practices/tree/master/code
- 第1章机器学习介绍,涵盖了机器学习的定义、应用场景及机器学习的分类,并通过一个简单的示例,让读者了解机器学习的典型步骤和机器学习领域的一些专业术语。
- 第2章Python机器学习软件包,介绍了scikit-learn开发环境的搭建步骤,以及IPython、Numpy、Pandas和Matplotlib等软件包的基础知识,并通过一个scikit-learn机器学习实例介绍了scikit-learn的一般性原理和通用规则。
- 第3章机器学习理论基础,介绍了算法模型性能评估的指标和评估方法等理论基础。本章内容是本书最关键的理论基础知识,对理解本书其他章节的内容非常重要。
- 第4章k-近邻算法,介绍了一个有监督的机器学习算法,即k-近邻算法。该算法可以解决分类问题,也可以解决回归问题。
- 第5章线性回归算法,介绍了单变量线性回归算法和多变量线性回归算法的原理,以及通过梯度下降算法迭代求解线性回归模型,并给出一个房价预测的实例。另外,本章对成本函数和使用线性回归算法对数据进行拟合也做了讲解。
- 第6章逻辑回归算法,介绍了逻辑回归算法的原理及成本函数。在本章中主要解决的问题有:逻辑回归算法的原理是什么?怎样使用梯度下降算法解决迭代求解逻辑回归算法的模型参数?什么是正则化?正则化能解决什么问题?L1范数和 L2 范数作为模型正则项有什么区别?如何使用逻辑回归算法解决乳腺癌检测问题?
- 第7章决策树,主要介绍了决策树的算法原理和算法参数,并给出了一个预测实例,最后对集合算法做了必要讲解。
- 第8章支持向量机,主要介绍了支持向量机的基本算法原理及常用核函数,并给出了用支持向量机来解决乳腺癌检测问题的实例。
- 第9章朴素贝叶斯算法,首先从贝叶斯定理谈起,引入了朴素贝叶斯分类法;然后通过一个简单的例子说明了算法的基本原理;接着介绍了概率分布的概念及几种典型的概率分布;最后通过一个文档分类实例来说明朴素贝叶斯算法的应用。
- 第10章PCA算法,首先介绍了PCA的算法原理;然后通过一个简单的模拟运算过程帮助读者理解该算法的原理和实现步骤;最后介绍了PCA算法背后的物理含义。本章在讲解的过程中顺便给读者推荐了一些优秀的线性代数资源,供读者参考。
- 第11章k-均值算法,首先介绍了该算法的基本原理及关键迭代步骤;然后通过一个简单的例子,介绍了如何使用scikit-learn中的k-均值算法解决聚类问题;最后使用一个文本聚类分析的例子介绍了k-均值算法的应用,并介绍了典型的无监督机器学习算法的性能评估指标。
datasets数据太大,不上传到github,下载地址为:
在LR和LC中,为什么使用L1/L2范数作为正则项,来解决过拟合的问题?
- L1范数作为正则项,会让模型参数θ稀疏化,即让模型参数向量为0的元素尽量多,
- l2范数作为正则项,会让模型参数尽量少,但不会为0,即尽量让每个特征对预测值都有一些小的贡献
在scikit-learn中默认值,为什么把L2范数作为正则项
- 由此可见,L1范数作为正则项,更多的是一个分析工具,而适合用来对模型求解。因为它会把不重要的特征直接去掉。
- 大部分情况下,我们解决过拟合问题,还是直接选择L2范数作为正则项,这也是scikit-learn的默认值
2019.11.08 L1范数作为正则项,可以实现参数的稀疏化,即自动帮助我们选择出那些对模型有关联的特征。
怎么知道L1范数作为正则项能提高算法的准确性? 答案:画出学习曲线
- degree=1一阶,degree=2,二阶
sklearn,为了使画出来的曲线更加平滑,针对每个点还会进行多次计算平均值,这个就是ShuffleSplit类的作用 问题来了,针对大数据集怎么高效的画出学习曲线, 答案很简单,我们可以从大数据集中选择一小部分数据来画学习曲线,待选择好最优的模型之后,再使用全部的数据集来训练模型, 有个地方需要注意,我们尽量保持选择出来的这部分数据的标签分类和大数据级的标签分布相同,如针对二元分类阳性和阴性比例要一致
标准化数据,保证每个维度的特征数据方差为1,均值为0,使得预测结果不会被某些维度过大的特征值而主导
fit() 预处理的数据,计算矩阵列均值和列标准差
transform(data) 得到标准化的矩阵