笔记:机器学习入门专栏笔记对应jupyternotebook以及封装的各种算法个人笔记,如有错误,感谢指出!-机器学习文档类资源-CSDN文库
绪论
什么是机器学习?
最早的机器学习应用-垃圾邮件的分辨
传统计算机解决问题的思路:
编写规则,定义“垃圾邮件”,让计算机执行
对于很多问题,规则很难定义
随着垃圾邮件的变化,规则本身也在不断变化
人类是怎么学习的?
什么是机器学习?
可以把模型理解为f(x)函数,求一个模型可以理解为找到一个函数来满足要求
计算机的优势是他的运算速率高,但需要输入大量的资料(相对于人脑)
生活中的机器学习:
判断信用卡发放是否有风险;谷歌等电商平台的推荐算法;人脸识别,语音识别,金融预测,市场分析
未来需要运用机器学习:
无人驾驶,安全领域,医疗领域金融市场领域,自然语言处理-智能翻译,专业领域
不要把机器学习算法孤立的看待,而应该结合其他领域,应用机器学习算法
本节课的主要内容:
逻辑回归,决策树,随机森林最常用的三种算法,然后是神经网络算法(深度学习基础
学习过程:
深入理解算法的基本原理
实际使用算法解决真实场景的问题
对不同算法进行对比试验
对同一算法的不同参数进行对比试验(调参等)
对部分算法进行底层编写
学会scikit-learn机器学习库的使用
学习目标:
如何评价算法的好坏
如何解决过拟合和欠拟合
如何调节算法的参数
如何验证算法的正确性
关于调库:
要学会连接不同API接口的原理,以及算法的实现过程,知道应该调用哪个接口合适
课程环境:
语言:python3,框架:scikit-learn,其他:numpy,matplotlib,IDE:Jupyter Notebook,pycharm
一,机器学习基础
一,机器学习基础概念:
关于数据:
一般把向量都表示为列向量
特征空间:
n个特征组成的N维空间叫做特征空间
分类任务本质就是在特征空间切分
由特殊到一般,化繁为简,由简到繁
特征可以很抽象
图像的每一个像素点都是特征,拥有不同的特征值
如果是彩色图像,特征更多
二,机器学习的基本任务(监督学习)
分类
回归
1,分类任务:
二分类
判断邮件是否为垃圾右键
判断是否有风险
判断石佛恶性肿瘤等
多分类
数字识别
图像识别
风险评级
一些算法只支持完成二分类任务
但是多分类任务可以转换为二分类任务
有一些算法天然的可以完成多分类任务
多标签分类
根据图片的信息可以将一张图片打上很多标签
2,回归任务:
结果是一个连续数字的值而非一个类别,一般是预测
房屋价格
市场分析
学生成绩
有些算法只能解决回归问题
有些算法只能解决分类问题
还有些算法只能的思路都可以解决
一些情况下回归任务可以简化为分类任务
三,算法分类1
根据算法可以分为:
监督学习
非监督学习
半监督学习
增强学习
1,监督学习
给机器的训练数据拥有标记或答案
大部分算法都是监督学习:
k近邻,线性回归和多项式回归,逻辑回归,SVM,决策树和随机森林
2,非监督学习
针对没有标记或答案的数据进行数据的分类-聚类分析
非监督学习的意义:
对数据进行降维处理
特征提取:信用卡的信用评级和人的胖瘦无关?(把一些与结果无关的特征去除)
特征压缩:PCA主成分分析法(高维->低维)
降维的意义是:方便可视化
数据的异常检测
可以去除高维数据的异常的点
3,半监督学习
一部分数据有标记或答案,另一部分没有
常见的是各种原因造成的标记缺失
通常先使用无监督学习手段对数据做处理,之后使用监督学习的手段对模型进行训练和预测。
4,增强学习
根据周围环境的情况,采取行动,根据采取行动的结果,学习行动的方式(奖惩机制)
应用:阿尔法go,无人驾驶,机器人
监督学习和半监督学习是基础
四,算法分类2
在线学习 online learning
批量学习(离线学习)batch learning
1,批量学习
优点:简单,模型一旦生成就不再改变
问题:如何适应环境的变化。因为随着时间的变化,学习的内容是在不断的变化,比如处理垃圾邮件,新类型的垃圾邮件是层出不穷的。模型的有效率会逐渐下降
解决方案:定时重新批量学习,但运算量巨大,环境变化可能非常快
2,在线学习
比如预测股市:输入样例后,输入模型,同时下一分钟就可以知道样例的结果是怎样的,并将这个结果作为正确结果与输出结果进行比较,再重新喂给算法进行模型的训练
优点:及时反映新环境的变化,适用于数据量巨大,完全无法批量学习的环境
问题:新的数据可能带来不好的变化,即所获得的数据可能是有问题的数据
解决方案:需要加强对数据进行监督(监督学习的数据异常检测)
五,算法分类3
参数学习 parametric learning
非参数学习 nonparametric learning
1,参数学习
假设模型函数f(x)的一些参数,比如设f(x)=a*x+b,然后找到合适的a和b
典型的是线性回归
一旦学到了参数就不再需要原有的数据集
2,非参数学习
不对模型进行过多的假设
非参数学习不代表没有参数!
一些思考:
面对不确定的世界,怎么看待机器学习进行预测的结果
数据为王?OR算法为王?
可以严格的数学推导出:任意俩个算法,他们的期望性能是相同的。
具体到某个特定问题,有些算法可能更好
但没有一种算法是绝对的比另一个算法好的
脱离具体问题谈算法好坏是没有意义的
在面对一个具体问题时,要尝试使用多种算法进行比较试验