开发者学堂课程【机器学习入门-概念原理及常用算法:有监督学习分类】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/355/detail/4185
有监督学习分类
内容介绍
一、Classification problems
二、Notation
三、Logistic regression
四、Try logistic regression @Parameter Server
五、Fun Time
一、Classification problems
1、Sometimes we want to predict discrete outputs rather than continuous
2、Is the email spam or not?(YES/NO)
3、What digit is in this image?(0/1/2/3/4/5/6/7/8/9)
分类跟前面的回归只是在y的上面有点不一样,y可能是一些离散的输出,枚举的一些值1,2,3,4这种,回归更多的是一个实数,比如,1.2,1.3,1.333之类的,比如这样一个邮件是不是垃圾邮件,数字是不是0-9之间的一个数字。
Example: classifying household appliances
Differentiate between two refrigerators using their power. consumption signature
以两种类型的电冰箱为例,如果从一个抛物跟流水这两个维度来看,把它的一些数据展现在一个图上面能明显看出来是两种冰箱。
二、Notation
Input features:x
(
i
)
∈ R
n
,i=1,.,m
Output: y
(
i
)
∈{+-1, 0)(binary clasification task)
Model Parameters∶θ∈R
n
,Hypothesis function∶
h
θ
(x)
∶R"
n-
>Rreturns continuous prediction of the output
y, where the value indicates how"confident"
we are that
the example is 0 or +1
所以形式化去看分类跟回归是很像的,除了y,这个y如果是20以内,它可能是一个布尔值,0,1这样的布尔值,跟前面也是一样的。
y输出是一个指数的值,这个样本是0还是正1,相当于一个概率,尤其是在逻辑回归中它输出的就是一个概率,这个样本是正1的概率是多少。
三、Logistic regression
Learn P(YX) diretly
Xis a vector of real-valued features,
Y is boolean (1,0)
Choose parameters W to maximize conditional
likelihood of training data
Datalikelihood= Maxπl P(Y|X,W),将P(Y=1|X),P(Y=0|X)代入,取In,得到Loss function∶
逻辑回归它要做的就是在给定x的情况下去学习y,x就是前面所讲到的特征,y只限制二分钟,它就是个布尔值,要是 boolean 就是前面讲到的 category 的一个值,给定xy=1的概率就是一个公式。
把y=1,y=0,这个数学公式打出来,一比再取log还是一个线性回归的问题。
Choose parameters W to maximize conditional
likelihood of training data
Data likelihood = Max П P(Y]X, w), P(Y=1]X), P(Y=0[X)
代入
,
取In, 得到
LOSS function:
l(W)= Max E[YlnP(Y = 1[X,W)+(1 - Y)lnP(Y = O[X,W)]
等价于
Min ln(1 +è-yXW), 这里(y=+1 or-1)
w是为了最大化的获得条件。倾向于用最后一种方法,采用梯度下降(GD),或者随机梯度下降(SGD)进行求解
def gradient descent logistic(X, y, theta, alpha,num iters) :
...
Performs gradient descent to l eacn the t a
by taking nTumn items gradient steps with 1 earning
zate alpha
...
m = y.size
J_ history = zeros (shape= (num iters, 1))
foz i in range (num iters) :
predictions = sigmoid (X.dot (theta)) .flatten ()
errors_ x1 = (predictions - y) * X[:, 0]
errors_ x2 = (predictions - y) * X[:,1]
theta[01[0] = theta[0][0] - alpha * (1.0 1 m) * errors x1. sum (
theta[IJ[0] = theta[lJ[0] - alpha * (1.0 1 m)★ezrors x2. sum 0
J_ history[i, 0] = compute_ cost_ logistic(X, y, theta)
return theta, J_ history
梯度下降的曲线是画出了一个等高线。
四、Try logistic regression @Parameter Server
http/helpalivun-incom/nternaldoc/detail/34557.html?spm=0.0.0.0.1YTRa4为例,将样本组织成2列,第一列为标签,第二列为特征
Like ODPS SQL,命令类似∶ps_serialize_train -iinputtab -O outputtab-t DeltaTermination…进行训练,取得模型,可以算出模型的指标,比如正确率等,看模型本身的效果是如何。
五、Fun Time
Consider logistic hypothesis h(X)=,Convert h(X) to a binary classification prediction by taking sign(h(X)-0.5), What is the equivalent formula for the binary classification prediction?
A. sign(WX-0.5)
B. sign(WX)
c. sign(WX+0.5)
D. None of the above
把wx=0代入公式,就能够很快的算出答案。