您当前的位置:网站首页>良言写意,小次郎-葡萄牙波尔图青训,欧洲青训介绍

良言写意,小次郎-葡萄牙波尔图青训,欧洲青训介绍

2019-06-12 13:54:16 投稿作者:admin 围观人数:274 评论人数:0次
喜良言适意,小次郎-葡萄牙波尔图青训,欧洲青训介绍欢就点重视吧!


在这篇文章中,我将用数学解说逻辑回归,介绍逻辑回归、sigmoid函数以及最大似然估量三者之间的联络。然后运用python中的梯度下降完成一个逻辑回归示例。本文首要包括五个问题:

1.什么是Logistic回归?

2.为什么不运用线性回归?

3.最大似然估量(MLE)

4.梯度下降

5.附python梯度下降完成代码


Logistic回归

Logistic回归是一种经典的核算模型,已广泛使用于学术界和工业界。与用于进行猜测的线性回归不同,逻辑回归也用于处理分类问题。例如当一个人从银行请求借款时,银行对请求人将来是否会违约十分感爱好?(是/否问题)。处理此问题的一种办法是直接猜测请求人的未来状况。这种办法称为感知。感知是另一个风趣的问题,它是SVM和神经网络的根底。另一种办法便是逻辑回归,对请求人违约概率进行猜测。由于概率的性质,猜测将落在[0,1]中。依据经历假如猜测概率大于或等于0.5,那么咱们能够标记为YES;假如猜测概率小于0.5,那么咱们能够标记为频组词NO;但是线性回归的规模是从负无量到正无量,而不是大悲咒朗读[0,1]。要处理这个问题,就需求运用Sigmoid函数了。其函数表达式为:


Sigmoid函数具有许多特点。



因而在逻辑回归中,y能够写为:



记住这个表达式,下边咱们会用到。


线性回归的缺陷

“核算学习简介”一书给出了开门见山的解说。首要,线性回归的规模是概率鸿沟[0,1]之外的。例如,假如通过线性回归和逻辑回归猜测违约概率,则通过线性回归的一些猜测概率乃至是负的,而逻辑回归不会呈现这样的问题。见下图。



线性回归的另一个问题是猜测值总是基数,如1,2,3,而不是类别。


最大似然估量

从整个人口整体中抽取一个样本。该样本遵从伯努利散布。



在该公式中,y是1或0,p是事情发作的概率。假如总共有N条记不雅观视频录,概率是多少呢?简而言之,假定每个根本是独立且相同散布的,咱们能够将N个概率联络在一起。



然后在等式两头同时取对数得。



留意,在公式中的p是需求估量的参数(良言适意,小次郎-葡萄牙波尔图青训,欧洲青训介绍概率),p的表达式为:



这个公式了解吗?是的,这便是第1部分中的S形函数。在核算中,最大似然估量(MLE)通过找到最大似然函数的参数值来取得参数估量。在这个典型的比如,咱们能够核算出参数p最大化对数似然,这也等于最小化本钱函数。这是凸优化中的两层问题。假如您有爱好,我引荐Stephen Boyd和Lieven Vandenberghe的书Convex Optimization。本钱函数为:

这便是似然函数、sigmoid函数以及逻辑回归丢失函数三者之间的数学联络。


梯度下降

与具有关闭方式解的线性回归不同,逻辑回归选用梯度下降来寻觅最优解。梯度下降的一般思维是迭代地调整参数以最小化本钱函数。首要有三种梯度下降,包括批量梯度下降,小批量梯度下降和随机梯度下降。在本文中咱们首要选用批量梯度下降。



依据咱们界说的逻辑回归的本钱函数J,得到其梯度是:



在第1部分中使用sigmoid函数的导数,然后咱们能够得到梯度化简为:



最终,将初始值赋良言适意,小次郎-葡萄牙波尔图青训,欧洲青训介绍给w; 然后通过学习率*逗鸟别传本钱函数梯度迭代更新w,直到本钱函数最小化。



附Python梯度下降完成

这一部分我将通西安特产过虹膜分类数据来展现梯度下降怎样作业的。首要导入必要的python库。


from sklearn import datasets
import numpy as np
import a4尺度;pandas as pd
import matplotlib.pyplot as plt
import matplotlib.lines&nbshirtsp;as mlines


接下来加载虹膜数总裁的挂名老婆据,这儿只选用二分类。


# Load data
iris = datasets.load_iris()
X=iris.data[0:99,:2]
y=iris.target[0:99]
# Plot the training points
x_min, x_max = X[:, 0].min() - .5,&nb看书网sp;X[:, 0].max() + .5
y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
plt.figure(2, figsize=(86))


梯度下降核算进程


#Step 1: Initial Model Parameter
Learning_Rate=0.01
num_iterations=100000
N=len(X)
w=np.zeros((2,1))
b=0
costs=[]
for i 宋智苑in range(num_iterations):
  #Step&华夏银行信用卡中心nbsp;2: Apply sigmoi良言适意,小次郎-葡萄牙波尔图青训,欧洲青训介绍d Function and get y prediction
    Z=np.dot(w.T,X.T)+b
    y_pred=1/(1约克大学+1/np.exp(Z))
  #Step 3: Calculate Cost Function
   &爱的供养nbsp;cost=-(1/N)*np.sum(y*np.lo大豆异黄酮g(y_pred)+(1-y)*np道德影院.log(1-y_pred))
  #Step 4: Calculate俞秋言 Gradient
    dw=1/N*np.dot(X.T,(y_pred-y).T)
    db=1/N*np.sum(y_pred-y)
  #Step&nbs良言适意,小次郎-葡萄牙波尔图青训,欧洲青训介绍p;5: Update w & b
 &nb蜂王浆sp;  w&crayon怎样读nbsp;= w - Learning_Rate*dw
    b 良言适意,小次郎-葡萄牙波尔图青训,欧洲青训介绍;= b - Learning_Rate*db
   #Records cost
    if i%100==0:
    costs.append(cost)
    print(cost)


可视化丢失函数下降进程


# Plot cost function
Epoch=pd.DataFrame(list(range(100,100001,100)))
Cost=pd.DataFrame(costs)
Cost_data=pd.concat([Epoch, Cost], axis=1)
Cost_data.columns=['Epoch','Cost']
plt.scatter(Cost_data['Epoch'], Cost_data['Cost'])
plt.xlabel('Epoch')
plt.ylabel('Cost')



从上图能够看出,丢失函数先急剧下降; 通过40000次迭代后趋于稳定。


# Plot linear classification
fig, ax = plt.subplots()
ax.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Set1,edgecolor='k')
line=mlines.Line2D([3.701,7],[2,4.1034],color='red')
ax.add_line(line)
ax.set_xlabel('Sepal length')
ax.set_ylabel('Sepal width')
plt.show()



图中的红线是线性决议计划鸿沟。由于在这种状况下,数据只包括2个维度,因而决议计划鸿沟是一条线。假如存在3个或更多个维度的状况时,决议计划鸿沟是超空间。


参阅

https:鼻甲肥壮//towardsdatascience.com/an-introduction-to-logistic-regression-8136ad良言适意,小次郎-葡萄牙波尔图青训,欧洲青训介绍65da2e

深度学习与Python,专心于深度学习、机器学习前沿常识与资讯

长按辨认二维码重视

the end
葡萄牙波尔图青训,欧洲青训介绍