非监督学习
这一节我们主要学习
- 无监督学习
- 编程语言的选择
- 聚类
无监督学习(Unsupervised Learning)
无监督学习和监督学习的区别
根据训练数据是否拥有标记信息,学习任务可大致被分为两类:监督学习(Supervised Learning)和无监督学习(Unsupervised Learning)
监督学习的代表是回归和分类。
无监督学习的代表是聚类。
聚类(Clustering)
通过案例了解无监督学习
针对无标签的数据集,聚类算法可能会把这些数据分成两个不同的簇。
聚类应用:
- 谷歌新闻分组
- 基因学的理解应用
无监督学习或聚集有着大量的应用。
- 组织大型计算机集群。大数据中心有大型的计算机集群,他们想解决什么样的机器易于协同地工作,如果你能够让那些机器协同工作,你就能让你的据中心工作得更高效。
- 社交网络的分析。已知你朋友的信息,比如你经常发 email 的,或是你 Facebook 的朋友、谷歌+圈子的朋友,我们能否自动地给出朋友的分组呢?即每组里的人们彼此都熟识,认识组里的所有人?
- 市场分割。许多公司有大型的数据库,存储消费者信息。通过检索这些顾客数据集,可以自动地发现市场分类并自动地把顾客划分到不同的细分市场中,这样才能自动并更有效地销售或不同的细分市场一起进行销售。
- 天文数据分析。这些聚类算法给出了令人惊讶、有趣、有用的理论,解释了星系是如何诞生的。
编程语言的选择
Cocktail Party Problem
鸡尾酒宴问题(Cocktail Party Problem):是在计算机语音识别领域的一个问题,当前语音识别技术已经可以以较高精度识别一个人所讲的话,但是当说话的人数为两人或者多人时,语音识别率就会极大的降低。
假设一个场景:现在是在个有些小的鸡尾酒宴中,放两个麦克风在房间中,记录两个人同时说话。因为这些麦克风在两个地方,离说话人的距离不同每个麦克风记录下不同的声音,虽然是同样的两个说话人,得到的是两份不同的录音。
如何把录音中的两个声音区分开来,需要一个比较复杂的程序。但是,采用比较好的编程环境,我们可以用几行代码实现它。比如matlab或者octave。
它的学习模型的代码实现:
[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');
该课程我们会使用Python语言进行算法实现, 我们是直接提供Python运行环境支持的, 你可以在这里直接进行运行, 达到边学边做的效果