机器学习基础
- 算法是核心,数据和计算是基础
机器学习开发流程

机器学习模型是什么
- 定义:通过一种映射关系将输入值到输出值

机器学习算法分类 (监督学习,无监督学习)
-
监督学习
- 分类: k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络
- 回归: 线性回归、岭回归
- 标注: 隐马尔可夫模型 (不做要求)
-
无监督学习
- 聚类 k-means
-
区别

监督学习
- 可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归),或是输出是有限个离散值(称作分类)。
无监督学习
- 可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值所组成。
分类问题

- 分类是监督学习的一个核心问题,在监督学习中,当输出变量取有限个离散值时,预测问题变成为分类问题。最基础的便是二分类问题,即判断是非,从两个类别中选择一个作为预测结果;
分类问题的应用
- 分类在于根据其特性将数据“分门别类”,所以在许多领域都有广泛的应用
- 在银行业务中,构建一个客户分类模型,按客户按照贷款风险的大小进行分类
- 图像处理中,分类可以用来检测图像中是否有人脸出现,动物类别等
- 手写识别中,分类可以用于识别手写的数字
- 文本分类,这里的文本可以是新闻报道、网页、电子邮件、学术论文
- …
回归问题

- 回归是监督学习的另一个重要问题。回归用于预测输入变量和输出变量之间的关系,输出是连续型的值。
回归问题的应用
-
回归在多领域也有广泛的应用
-
房价预测,根据某地历史房价数据,进行一个预测
-
金融信息,每日股票走向
-
…
sklearn 数据集
数据集划分
-
机器学习一般的数据集会划分为两个部分:
-
训练数据:用于训练,构建模型
-
测试数据:在模型检验时使用,用于评估模型是否有效
sklearn 数据集接口介绍
sklearn 数据集划分API
sklearn.model_selection.train_test_split
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:标签名,回归数据集没有
转化器和预估器
转换器
想一下之前做的特征工程的步骤?
1、实例化 (实例化的是一个转换器类(Transformer))
2、调用fit_transform(对于文档建立分类词频矩阵,不能同时调用)

-
转换器的作用:进行特征工程的父类(Transformer)调用:fit_transform来完成数据的处理
-
fit_transform = fit + transform
-
Fit(): Method calculates the parameters μ and σ and saves them as internal objects # 简单来说,就是求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。 -
transform(): Method using these calculated parameters apply the transformation to a particular dataset. # 解释:在fit的基础上,进行标准化,降维,归一化等操作(看具体用的是哪个工具,如PCA,StandardScaler等)。 -
fit_transform(): joins the fit() and transform() method for transformation of dataset. # 解释:fit_transform是fit和transform的组合,既包括了训练又包含了转换。 # transform()和fit_transform()二者的功能都是对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化,正则化等)
实例化过程中需要注意的点,训练集x_train使用fit_transform,而测试集只需要使用transform,不用fit(因为它需要统一方差,均值这些标准)
估计器
- 在sklearn中,估计器(estimator)是一个重要的角色,分类器和回归器都属于estimator,是一类实现了算法的API
- 前面转换器我们有使用fit_transform和transform,而在预估器这里,我们只使用fit,而不用transform。
- 模型评估:
- 方法1:直接比对真实值和预测值 y_predict = estimator.predict(x_test)
- 方法2:计算准确率,计算分数 accuracy = estimator.score(x_test, y_test)
1、用于分类的估计器:
- sklearn.neighbors k-近邻算法
- sklearn.naive_bayes 贝叶斯
- sklearn.linear_model.LogisticRegression 逻辑回归
2、用于回归的估计器:
- •sklearn.linear_model.LinearRegression 线性回归
- •sklearn.linear_model.Ridge 岭回归
估计器的工作流程

小结
传统机器学习算法流程

分类算法-k近邻算法

-
定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
-
两个样本的距离可以通过如下公式计算,又叫欧式距离
-
比如说,a(a1,a2,a3),b(b1,b2,b3)
-
√ ( ( 𝑎 1 − 𝑏 1 ) 2 + ( 𝑎 2 − 𝑏 2 ) 2 + ( 𝑎 3 − 𝑏 3 ) 2 ) √((𝑎1−𝑏1)^2+(𝑎2−𝑏2)^2+(𝑎3−𝑏3)^2 ) √((a1−b1)2+(a2−b2)2+(a3−b3)2
-

本文介绍了机器学习的基础概念、开发流程和模型分类,重点讲解了sklearn库中的k近邻算法和朴素贝叶斯算法。通过案例展示了如何使用sklearn实现k-近邻算法进行入住位置预测和鸢尾花分类,以及朴素贝叶斯在新闻分类中的应用。同时,讨论了模型评估指标和交叉验证的重要性。
最低0.47元/天 解锁文章
365

被折叠的 条评论
为什么被折叠?



