学习以第一篇的课本为主,基本都是看书,理解,复现书本的案例。笔记主要包含自己的一些想法,实际操作过程中遇到的问题。
上篇讲到两类学习模型,监督学习和无监督学习。从监督学习开始,监督学习又分为分类学习和回归预测两种。
我们从分类学习开始,原因是 书本的次序如此。
分类学习:
常见案例,肿瘤诊断,数字识别,新闻分类,物种鉴定,垃圾邮件判断等(书本上提供了一个关于泰坦尼克号的经历者的预测(后面会写到),我感觉不算典型的分类)
基本流程:
Step1:准备数据集,包括但不限于 文本,图像,音频,视频等
Step2:抽取需要的特征,形成特征向量(这一步很关键。两点:1:选择特征,为什么要选这个特征,值得研究。2:量化,用来学习。这个地方是我个人的理解,可能不对。欢迎指正。)
Step3:将特征向量连同标记/目标,放入学习算法之中。训练出一个预测模型。
Step4:采用相同的特征抽取方法作用于新测试数据,得到用于测试的特征向量。
Step5:使用预测模型对这些待测试的特征向量进行预测并得到结果。
下面开始介绍具体的模型:
1:线性分类器
估计是最简单的分类模型。
概念:假设特征与分类结果存在线性关系的模型。
方法:累加计算每个维度的特征与各自权重的乘积来帮助类别决策。
最典型是 一条y=kx+b的直线,通过确定k和b的数值,进行区分。在实际过程中,我们采用Logistic函数,其表达式为:
没有公式编辑器,所以直接贴度娘的链接。
关于这个算法的细节,可以参考斯坦福大学吴恩达教授的课间。课本中给出的数据集是关于乳腺癌肿瘤数据的预处理。
刚刚看了一下随手的笔记,发现没有写完整的代码。
首先关于数据缺失的问题。这个问题,对于有过数据处理经验的同学来说一定很熟悉。因为各种各样的原因,这种问题实在是太常见了。常用的解决方法,使用平均数代替。#data=data.replace(to_replace='?',value=np.nan)
在读取数据之后,会用上面的代码。这句代码的作用是 将?替换为标准缺失值来表示。
#data = data.dropna(how='any')
丢弃掉带有缺失值的数据(只要有一个维度存在缺失)
#train_test_split()
分割数据,非常常见的。
这里关于二分类判断模型的评估,有一个常见的通用思想。即所有二分类任务下,预测结果(Predicted Condition)和正确标记(True Condition)之间存在四种不同的组合。(这个就是预测真,预测假,实际真,实际假排列组合)故而可以构成一个二阶混淆矩阵。
关于第一个例子,因为理解起来很简单。不多赘述了,后面笔记肯定补代码。
网友评论