无监督学习

简介: 一、Unsupervised learning二、K-Means三、Nearest neighbor methods四、Decision trees五、Ensemble methods六、Try GDBT @Parameter Server七、部分算法应用场景八、Homework

无监督学习

 

内容介绍:

一、Unsupervised learning

二、K-Means

三、Nearest neighbor methods

四、Decision trees

五、Ensemble methods

六、Try GDBT @Parameter Server

七、部分算法应用场景

八、Homework

  

一、Unsupervised learning

One way to interpret many unsupervised learning

algorithms is that they try to "re-create"the input using a limited hypothesis class

监督,它是一个没有 label 的情况下的学习算法,其实很多类的算法它都是非监督算法都是想去能够重建输入,所以它的这样一个假设级一般是hypothesis functionhθ:RnRn-want hθxifor all training dataloss functionlRn×RnR+-E.g.,l(hθ(x),x)=||hθ(x)-x||2

image.png

 

二、K-Means

1Parameters are a set of k"centers" in the data

2、θ={μ(1),μ(2),...,μ(k)},μ(i)RK

3Hypothesis class picks the closest center

hθ(x)=μ(argmini||x-μ(i)||2)

4With this framework,training looks the same as supervised

learning minimizeθ  

Emi=1||x(i)-hθ(x(i)||2

K-Means是聚类的一个算法,它的参数是k聚类的中心,一个假设级也是每个样本都挑一个跟最近的,通过这样种机制得到一个剧烈的中心点。

image.png

 

例:首先初始化得到k个中心点,可能k中心点随机化来赋予的,k是有定的策略,包括初试点的赋予也是有定的方式跟方法的,然后通过这种方式跟方法来设置好k,可以跟这样一个中心点之后就开始迭代,来算这几个点,哪个中心点比较近,哪个近,它就属于一个中心点,每次弄完统一分配之后来重新计算这个中心点,可能中心点不怎么发生变化,那么k-means 就基本上收敛了。

 

如果设定k等于5,把跑出去的结果放在里面,k-means这种情况下的效果是很好的。

 

 

三、Nearest neighbor methods

1Predict output based upon closest example in training set

set hθ(x) = y(argmini||x-x(i)||2)

2Can also average over kclosest examples:knearest neighbor

3Requires no separate "training"phase, but requires that we keep around all the data

 

少数服从多数的一个概念,它本身不需要所谓的训练过程,但是它需要在预测时候需要把所有的数据都要过一遍,通过这样一种关系,如果给定一个测试数据x ,找到 k 个离它最近的一个样本,看这个 k 里面哪个 label 是最常见的出现最多,那么就是x label

image.png

 

 

比如 k 等于3,中间的红五角星,如果在附近找三个比较近的,是需要有一系列的数据结构算法来支持的,中间也会比较耗内存。如果K 等于6画的是外环的圈,如果k等于3的时候,它的红星labelclass b因为这两个出现的多一点,k等于6的时候它所谓的类就是 class a

所以这中间k的选取也有很大关系,但这个算法比较自然,一般效果不会太差。

 

四、Decision trees

Hypothesis class partitions space into diffrent regions; Can also have linear predictors(regression or classification) at the leaves;Greedy training find nodes that best separate data into distinct classes

image.png

 

第二类一个决策,决策它是把这样一个空间分成多个不同的区域,非常类似于这个人来去做一些决策。

 

其实人来做决策非常像,同时可能在日常生活也写了很多这样的一个角色的过程,比如c面有一堆 if else 的地方其实都会有这样一个过程,它可以用来做回归,也可以用来做分类。

 

例:收入跟年龄,来预测两类

image.png

 

把小于收入61的画一条线,年龄27画一条线,年龄38画一条线,这样就分的很好,这也是一个非线性的决策,一个边界。

Fun Time

The following c like code can be viewed as a decision tree of three leaves

if (income > 100000) return true;

else {

if (debt > 50000) return false;

else return true;

}

What is the output of the tree for (income, debt) = (98765, 56789)?

A. True

B.98765

C. False

D.56789

如果有类似c一样的代码,如果这样一个输入是这样,输出是什么样的?

 

 

五、Ensemble methods

1Combine a number of different hypotheses, popular instances:

2Random forests:ensemble of decision trees built from different subsets of training data;

3Boosting: iteratively train multiple clasifiers/regresion on reweighted examples based upon performance of the previous hypothesis

 

实践中用的非常广,是集成学习,就是把一系列的猫都 combine 起来,有两种类别的方式,类似于 random forests ,每个人都来到一个不同的数据去学习不同的模型之后再把它 combine,还有一种是每次训练的模型都在前一次的基础上进行迭代,进行提高,这种程度 boosting ,比如这种常见的 fdbt 等等。

 

 

六、Try GDBT @Parameter Server

按照http//gitlab.alibaba-inc.com/parameter-server/ps-sdk/wikis/smart的说明,组织好样本;

使用类似∶param_server-ily_gbdt_ota_train_data-o ly.gbdt_ota_train_model-a SMART的命令,进行建模

 

比如在集团里面有个 fdbt,按照它的说明,把样本组织好,把特征分成一列,前面是 label,后面是特征和它的值,通过在云端设置一个节点,通过命令进行建模,完整的命令在说明里面查看。

 

 

七、部分算法应用场景

Following the Occam's Razor principle:use the least complicated algorithm that can address your needs and only go for something more complicated if strictly necessary

逻辑回归

 

简单高效,调参容易,特征、样本规模→千亿量级,广泛应用在二分类上,支持在线学习,典型场景∶广告/推荐/广告/营销中CTR &CVR预估、Rank

决策树

 

直观易理解,支持非线性,样本规模百亿量级,特征规模万级别输出特征重要度,二分类跟多分类,典型场景∶搜索排序、推荐、Rank、回归、特征选择等

SVM

 

在工业级场景中,相对逻辑回归几乎没有优势,且训练比较慢。

一般不推荐在工业级场景中使用

KNN

 

Simplest thing you can do, often effective but slow and requires lots of memory

K-Means

 

没有标签数据时,clustering when you need to group points based on some feature

线性回归

 

Use when you want to predict continuous values, instead of classifying

首先一个大的原则就是Occam's Razor,这个原则就是希望去用一些相对没有那么复杂的算法,就能够解决问题。


而且只有在需要去用那么复杂的算法的时候,才去用它,这是一个非常重要的前提。


逻辑回归简单高效,支持的特征规模跟样本规模也比较多,调仓也比较容易,可能要调的是一个政策化的一个参数,因为它使用方面比较容易上手,所以它广泛应用在iPhone类上面,并且它也比较好的能够支持在线学习,比如说谷歌的 stil的算法,它在一些典型的场景里面,比如广告推荐搜索营销中的ctrcvr的一个预估认可等等,运用得非常的广。


第二个是决策数,它是因为过程确实非常容易理解,人也比较容易去debug,这是比较好的非线性的一个特征,所以再多分类上应用的非常广,并且它能够输出这样个特征的重要程度,所以也在类似于推荐搜索上面用的非常的广,svm它其实在工业级的级别的场景中相对逻辑回归,它并没有什么太多的优势,并且它的训练相对是比较慢,所以般不怎么推荐在工业级的场景中去使用它。


当然在一些数据量不大,然后操作规模也不大的情况下,应用它还是有一定的优势的。 KNN它比较简单,也比较高手,但是真的比较慢,它需要消耗比较多的一个内存。

 

L-means 当没有这样一个标签数据的时候,可以去尝试用 K-means并且 K-means 的一些输出可以用作别的算法的一个输入,线性回归就是想预测连续着的尝试线性回归,一般情况下使用算法的时候先把逻辑回归去做一个based on 再尝试用一些决策树一些更优的,取得一个更好的效果。

 

实际情况下,尝试顺序∶逻辑回归→决策树→Ensemble method

这样的一个顺序并不是绝对的,可以根据自己的问题去灵活的去选择去应用。

 

总结:这些算法分为监督非监督,它的一些应用场景,比如说回归分类,然后聚类,降维在这里并没有太多的去提及,而且也阐述了为什么机器能够学习,包括一个PAC理论,希望去实现一个比较简单的机器学习的算法。


再次要强调一下 machine learning,它涉及的学科非常多,它包括这个特征的表示,模型的评估,然后算法这样一个优化求解的问题,数据里面的一些问题,然后还有各式各样的算法,同时在面对大规模的时候,它对应的这样一个模型的system,怎么去设计工程方面的一些东西,所以要考虑的问题是方方面面的。

 

 

八、Homework

1、使用http://gitlab.alibaba-inc.com/jun.zhoujun/ml-

base/wikis/criteo 100000 data , 10万条criteo数据,

logistic regression, decision tree等算法,进行数据处

理、特征分析,建立模型

2、分析loss、收敛等情况,绘制收敛曲线

3Check模型是否有效,并分析各个特征的重要性

 

自己动手去尝试一下逻辑回归、决策书gbde等等这些算法去亲测,感受一下AI的魅力,去分析这样一个模型,分析loss收敛的情况,汇集一些曲线,查一下这个模型是不是真的有效,是不是特征真的是合理,通过这样一个方式能够直观了解的去用这样个积极学习的东西,甚至最后能够给自己的一些场景联系上,能够尝试去使用这样一个模型能力的算法。

 

 

相关文章
|
开发工具 git 开发者
|
5月前
|
人工智能 自然语言处理 数据可视化
AI-Compass LLM评估框架:CLiB中文大模型榜单、OpenCompass司南、RAGas、微软Presidio等构建多维度全覆盖评估生态系统
AI-Compass LLM评估框架:CLiB中文大模型榜单、OpenCompass司南、RAGas、微软Presidio等构建多维度全覆盖评估生态系统
 AI-Compass LLM评估框架:CLiB中文大模型榜单、OpenCompass司南、RAGas、微软Presidio等构建多维度全覆盖评估生态系统
|
缓存 Java Spring
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
文章比较了在Servlet和Spring Boot中获取Cookie、Session和Header的方法,并提供了相应的代码实例,展示了两种方式在实际应用中的异同。
1469 3
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
|
人工智能 自然语言处理 程序员
提交通义灵码创新实践文章,重磅好礼只等你来!
通义灵码创新实践征集赛正式开启,发布征文有机会获得重磅好礼+流量福利,快来参加吧!
23444 21
|
机器学习/深度学习 存储 算法
【2024泰迪杯】B 题:基于多模态特征融合的图像文本检索Python代码实现
本文提供了2024泰迪杯B题“基于多模态特征融合的图像文本检索”的Python代码实现,包括问题分析、多模态特征提取、特征融合模型和算法的构建,以及如何使用召回率作为评价标准进行模型性能评估的详细说明。
276 2
【2024泰迪杯】B 题:基于多模态特征融合的图像文本检索Python代码实现
|
JSON Java 数据格式
Spring Boot 中的 @DateTimeFormat 和 @JsonFormat 的用法及作用
【6月更文挑战第11天】在开发 Spring Boot 应用时,处理日期和时间数据是一个常见的需求。Spring Boot 提供了两个注解 @DateTimeFormat 和 @JsonFormat 来帮助我们处理这些问题。
1240 4
|
人工智能 安全 数据中心
冲刺!阿里云在5个国家投资新建数据中心
冲刺!阿里云在5个国家投资新建数据中心
524 2
|
前端开发 IDE 编译器
《Solidity 简易速速上手小册》第7章:智能合约的部署与交互(2024 最新版)(上)
《Solidity 简易速速上手小册》第7章:智能合约的部署与交互(2024 最新版)
359 0
|
安全 算法 物联网
从密码学了解物联网信息安全
从密码学了解物联网信息安全
731 1
从密码学了解物联网信息安全
|
Java 数据库 Spring
Spring Boot 注解详解:一步一步了解Spring Boot的核心注解
1. 主要的注解:@SpringBootApplication 我们的入口类一般会被此注解所标注,如下所示:
669 1