【机器学习|【机器学习】python实现吴恩达机器学习作业合集(含数据集)】学习感言:
从3.7第一天开始,到今天4.4,一个多月的时间,陆续完成了听课,代码实现和总结博客,过程些许艰难,作为一个刚入门的学习者,收获了很多。总结一下这一段时间的学习过程吧。后面的学习方向还在思考。
目录
1.0 线性回归预测
2.0 线性可分logistic逻辑回归
2.1 线性不可分logistic逻辑回归
3.0 logistic逻辑回归手写多分类问题
3.1 神经网络正向传播
4.0 神经网络反向传播(BP算法)
5.0 方差与偏差
6.0 SVM支持向量机
7.0 kmeans聚类
7.1 PCA主成分分析
8.0 异常检测
8.1 推荐系统(协同过滤算法)
作业涉及到的数据集:
链接:https://pan.baidu.com/s/1Ym6WHYd0sVyThLErwLE9pg
提取码:pg7z
Ng课程大纲总结
无监督学习 线性规划,逻辑回归,神经网络,SVM以下是零碎:
无监督学习 K-means , PCA , 异常检测
应用 推荐系统,
大规模机器学习 映射化简和数据并行:
将我们的数据集分配给不多台 计算机,让每一台计算机处理数据集的一个子集,然后我们将计所的结果汇总在求和。这样 的方法叫做映射简化。如果任何学习算法能够表达为,对训练集的函数的求和,那么便能将这个任 务分配给多台计算机(或者同一台计算机的不同 CPU 核心),以达到加速处理的目的。
构建机器学习系统tips 方差/偏差 ,正则化
决定下一步做什么: 算法评估,学习曲线(判断高偏差/高方差问题),误差分析
上限分析:机器学习的应用中,我们通常需要通过几个步骤才能进行最终的预测,我们如何能够 知道哪一部分最值得我们花时间和精力去改善呢?这个问题可以通过上限分析来回答。
问题描述和流程图 滑动窗口分类算法(CV) 获取大量数据和人工数据
现有的机器学习种类繁多,我们一般可以进行如下的分类标准:一 、监督学习与无监督学习
- 是否在人类监督下学习(监督学习、非监督学习、半监督学习和强化学习)
- 是否可以动态的增量学习(在线学习和批量学习)
- 是简单的将新的数据点和已知的数据点进行匹配,还是像科学家那样对训练数据进行模型检测,然后建立一个预测模型(基于实例的学习和基于模型的学习)
- 监督学习(Supervised Learning):对于数据集中每一个样本都有对应的标签,包括回归(regression)和分类(classification);
- K近邻算法
- 线性回归
- logistic回归
- 支持向量机(SVM)
- 决策树和随机森林
- 神经网络
- 无监督学习(Unsupervised Learning):数据集中没有任何的标签,包括聚类(clustering),著名的一个例子是鸡尾酒晚会。实现公式:[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x’);
- 聚类算法
- K均值算法(K-means)
- 基于密度的聚类方法(DBSCAN)
- 最大期望算法
- 可视化和降维
- 主成分分析(PCA)
- 核主成分分析
- 关联规则学习
- Apriori
- Eclat
- 异常检测
- 半监督学习 有些算法可以处理部分标记的训练数据,通常是大量未标记的数据和少量标记的数据,这种成为半监督学习。
- 如照片识别就是很好的例子。在线相册可以指定识别同一个人的照片(无监督学习),当你把这些同一个人增加一个标签的后,新的有同一个人的照片就自动帮你加上标签了。
- 强化学习
强化学习,它的学习系统能够观测环境,做出选择,执行操作并获得回报,或者是以负面回报的形式获得惩罚。它必须自行学习什么是最好的策略,从而随着时间推移获得最大的回
在线学习算法指的是对数据流而非离线的静态数据集的学习。许多在线网站都有持续不断的用户流,对于每一个用户,网站希望能在不将数据存储到数据库中便顺利地进行算法学习。
- 在线学习:产品搜索界面产品推荐
一般来说,我们将数据集划分成训练集(60%)、验证集(20%)和测试集(20%);
训练集
验证集
测试集
不能在训练过程中使用测试集,而后再用相同的测试集去测试模型。这样做其实是一个cheat,使得模型测试时准确率很高。
四、模型优化 欠拟合,高偏差:说明没有很好的拟合训练数据
过拟合,高方差:拟合训练数据过于完美,J(θ)≈0,导致模型的泛化能力很差,对于新样本不能准确预测
文章图片
五、机器学习系统设计 不对称分类的误差评估(skewed classes)
错误率:有多少比例的西瓜被判断错误;
查准率(precision):算法挑出来的西瓜中有多少比例是好西瓜;
查全率(recall):所有的好西瓜中有多少比例被算法跳了出来。
- 如果我们想要比较确信为正例时才判定为正例,那么提高阈值,模型会对应高查准率,低召回率;
- 如果希望避免假阴性,那么降低阈值,模型会对应低查准率,高召回率
- 共轭梯度算法
- BFGS
- L-BFGS
缺点:更加复杂
最后:放一下Ng的结语,激励自己继续前进吧~感谢老师
文章图片
推荐阅读
- 机器学习|机器学习python代码
- python|为什么自学Python学着学着就放弃了()
- 笔记|利用python处理简历和名单——处理excel & os、shutil处理文件
- python matplotlib绘制函数图形_【总结篇】Python matplotlib之使用统计函数绘制简单图形...
- python|python 语音识别深度学习_用Python实现语音识别的终极指南
- #yyds干货盘点# 7. ?会查新华字典不(会。Python字典已经掌握了)
- #yyds干货盘点#Python - 爬虫_请求伪造
- Python 环境搭建
- #yyds干货盘点# 6. Python 元组,不可变的列表,滚雪球学 Python