一个小白的机器学习笔记 part1
作为一个小白,想要入门机器学习,在自学的过程中做过一些笔记,希望能够以博文的形式将自己的学习轨迹记录下来,作为成长道路上的一个见证,留下一些痕迹。内容不全,后面会不断进行补充,第一次写博文可能会有很多不合理的地方也欢迎大家进行指正哈哈哈~下面开始正文
机器学习概述
- 机器学习算法分类
- 监督学习(特征值+目标值)
监督学习(Supervised learning),可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由 输入特征值和目标值所组成。函数的输出可以是一个连续的值 (称为回归),或是输出是有限个离散值(称作分类)
- 分类(针对目标值离散型数据): k-近邻算法、贝叶斯分类、决策树与 随机森林、逻辑回归、神经网络
- 回归(针对目标值连续型数据): 线性回归、岭回归
- 标注 隐马尔可夫模型
- 无监督学习(特征值)
无监督学习(Unsupervised learning),可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是 由输入特征值所组成。
- 聚类 k-means
- 机器学习开发流程
sklearn数据集
- 数据集划分
机器学习一般的数据集会划分为两个部分:
- 训练数据(75%数据):用于训练,构建模型
- 测试数据(25%数据):在模型检验时使用,用于评估模型是否有效
-
sklearn数据集划分API
sklearn.model_selection.train_test_split
-
scikit-learn数据集API
sklearn.datasets 加载获取流行数据集
- datasets.load_*( ) 获取小规模数据集,数据包含在datasets里
- datasets.fetch_*(data_home=None) 获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/
-
获取数据集返回的类型:load* 和fetch* 返回的数据类型 datasets.base.Bunch(字典格式)
- data:特征数据数组,是 [n_samples * n_features] 的二维numpy.ndarray 数组
- target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
- DESCR:数据描述
- feature_names:特征名,新闻数据,手写数字、回归数据集没有
- target_names:标签名,回归数据集没有
-
sklearn分类数据集
可以使用sklearn自带的分类数据集
-
数据集进行分割
sklearn.model_selection.train_test_split(*arrays, **options)
- x 数据集的特征值
- y 数据集的标签值
- test_size 测试集的大小,一般为float
- random_state 随机数种子,不同的种子会造成不同的随机 采样结果。相同的种子采样结果相同。
- return 训练集特征值,测试集特征值,训练标签,测试标签 (默认随机取)
-
用于分类的大数据集
sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)
- subset: ‘train’或者’test’,‘all’,可选,选择要加载的数据集. 训练集的“训练”,测试集的“测试”,两者的“全部”
datasets.clear_data_home(data_home=None) 清除目录下的数据
-
sklearn回归数据集
可以使用sklearn自带的分类数据集
-
估计器(estimator)
-
估计器的定义
在sklearn中,估计器(estimator)是一个重要的角色,分类器和回归器都属于estimator,是一类实现了算法的API -
估计器分类
-
用于分类的估计器:
sklearn.neighbors k-近邻算法
sklearn.naive_bayes 贝叶斯
sklearn.linear_model.LogisticRegression 逻辑回归 -
用于回归的估计器:
sklearn.linear_model.LinearRegression 线性回归
sklearn.linear_model.Ridge 岭回归
-
-
估计器工作流程