【机器学习】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

方差/偏差 ,正则化

决定下一步做什么:

算法评估,学习曲线(判断高偏差/高方差问题),误差分析
上限分析:在机器学习的应用中,我们通常需要几个步骤才能做出最终的预测。我们怎么知道哪个部分最值得我们花时间和努力去改进呢?这个问题可以用上界分析来回答。

[En]

Upper limit analysis: in the application of machine learning, we usually need several steps to make the final prediction. how can we know which part is most worthy of our time and effort to improve? This question can be answered by upper bound analysis.

问题描述和流程图

滑动窗口分类算法(CV)

获取大量数据和人工数据

以下是零碎:

现有的机器学习种类繁多,我们一般可以进行如下的分类标准:

  • 是否在人工监督下学习(监督学习、无监督学习、半监督学习和强化学习)
    [En]

    whether to learn under human supervision (supervised learning, unsupervised learning, semi-supervised learning and reinforcement learning)*

  • 是否可以动态的增量学习(在线学习和批量学习)
  • 是简单地将新数据点与已知数据点进行匹配,还是像科学家那样对训练数据进行模型检查,然后构建预测模型(基于案例的学习和基于模型的学习)
    [En]

    whether to simply match new data points with known data points, or model check the training data as scientists do, and then build a predictive model (case-based learning and model-based learning)*

一 、监督学习与无监督学习

  • 监督学习 (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
  • *异常检测

  • 半监督学习 有些算法可以处理部分标记的训练数据,通常是大量未标记的数据和少量标记的数据,这种成为半监督学习。

  • 例如,照片识别就是一个很好的例子。在线相册可以指定识别同一人的照片(无监督学习)。当您向同一人添加标签时,同一人的新照片将自动为您添加标签。
    [En]

    for example, photo recognition is a good example. Online albums can specify photos that identify the same person (unsupervised learning). When you add a tag to the same person, the new photos of the same person will automatically tag you.*

  • 强化学习强化学习,它的学习系统能够观测环境,做出选择,执行操作并获得回报,或者是以负面回报的形式获得惩罚。它必须自行学习什么是最好的策略,从而随着时间推移获得最大的回

二、在线学习

如果你有一个由持续的用户流触发的连续数据流,并进入你的网站,你可以做的是使用在线学习机制来从数据流中学习用户的偏好。然后使用这些信息来优化关于网站的一些决策。

[En]

If you have a continuous data stream triggered by a continuous user stream and enter your site, what you can do is to use an online learning mechanism to learn the user’s preferences from the data stream. and then use this information to optimize some decisions about the site.

在线学习算法指的是数据流的学习,而不是离线静态数据集的学习。许多在线网站都有源源不断的用户流,对于每个用户,网站希望在不将数据存储在数据库中的情况下顺利学习算法。

[En]

Online learning algorithms refer to the learning of data streams rather than offline static data sets. Many online websites have a continuous user flow, and for each user, the site hopes to learn the algorithm smoothly without storing the data in the database.

  • 在线学习:产品搜索界面 产品推荐

三、模型训练及选择(model selection)

可以依据训练误差和测试误差来评估假设hθ(x);
一般来说,我们将数据集划分成训练集(60%)、验证集(20%)和测试集(20%);

  • 训练集

训练集用来 训练模型,学习参数θ :minJ(θ);即确定模型的权重和偏置这些参数,通常我们称这些参数为学习参数。

  • 验证集

验证集用于 模型的选择,更具体地来说,验证集并不参与学习参数的确定,也就是验证集并没有参与梯度下降的过程。用训练集对模型训练完毕后,再用验证集对模型测试,测试模型是否准确而不是训练模型的参数。

  • 测试集

测试集只使用一次,即在训练完成后 评价最终的模型时使用。它既不参与学习参数过程,也不参数超参数选择过程,而仅仅使用于模型的评价。
不能在训练过程中使用测试集,而后再用相同的测试集去测试模型。这样做其实是一个cheat,使得模型测试时准确率很高。

四、模型优化

欠拟合,高偏差:说明没有很好的拟合训练数据

过拟合,高方差:拟合训练数据过于完美,J(θ)≈0,导致模型的 泛化能力很差,对于新样本不能准确预测

【机器学习】python实现吴恩达机器学习作业合集(含数据集)

五、机器学习系统设计

不对称分类的误差评估(skewed classes)

错误率:有多少比例的西瓜被判断错误;

查准率(precision):算法挑出来的西瓜中有多少比例是好西瓜;

查全率(recall):所有的好西瓜中有多少比例被算法跳了出来。

  • 如果只想在确定是正面例子的情况下才确定正面范例,那么提高门槛,模型将对应于高准确率和低召回率。
    [En]

    if we want to determine a positive example only when we are sure that it is a positive example, then raise the threshold, and the model will correspond to high precision and low recall rate.*

  • 如果想避免漏报,那么降低门槛,模型将对应低准确率和高召回率。
    [En]

    if you want to avoid false negative, then lower the threshold, and the model will correspond to low accuracy and high recall rate.*

六、高级优化算法:

  • 共轭梯度算法
  • BFGS
  • L-BFGS

优点:无需人工选择参数α;运算速度比梯度下降更快

缺点:更加复杂

最后:放一下Ng的结语,激励自己继续前进吧~ 感谢老师

【机器学习】python实现吴恩达机器学习作业合集(含数据集)

Original: https://blog.csdn.net/m0_51933492/article/details/123959546
Author: —Xi—
Title: 【机器学习】python实现吴恩达机器学习作业合集(含数据集)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/10407/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总