简单易学的机器学习算法——Logistic回归
2014-05-12 11:10
260 查看
一、Logistic回归的概述
Logistic回归是一种简单的分类算法,提到“回归”,很多人可能觉得与分类没什么关系,Logistic回归通过对数据分类边界的拟合来实现分类。而“回归”也就意味着最佳拟合。要进行最佳拟合,则需要寻找到最佳的拟合参数,一些最优化方法就可以用于最佳回归系数的确定。二、最优化方法确定最佳回归系数
最优化方法有基于梯度的梯度下降法、梯度上升发,改进的随机梯度下降法等等。基于梯度的优化方法在求解问题时,本身对要求解的问题有要求:即问题本身必须是可导的。其次,基于梯度的方法会使得待优化问题陷入局部最优。此时,一些启发式优化方法可以很好的解决这样的问题,但是启发式算法的求解速度较慢,占用内存较大。对于确定回归系数这样的问题
不存在多峰,也就是说不存在除最优值之外的局部最优值。其次,这样的问题是可求导的,所以基于梯度的方法是可以用来求解回归系数的问题的。优化算法见optimal algorithm类别。
三、Sigmoid函数
当分类边界的函数被表示出来后,可以使用一种被称为海维塞德阶跃函数(Heaviside step function)来处理,简称为单位阶跃函数。其中Sigmoid函数是其中使用较多的一种阶跃函数。Sigmoid函数如下图:Sigmoid函数的公式为:
当z为0时,函数值为0.5;
四、实验(MATLAB程序)
1、梯度上升法
%%gradient method function weights = gradient(x, y) alpha = 0.001;%Step maxCycle = 500; [m,n] = size(x); weights = ones(n,1); for i = 1 : maxCycle h = sigmoid(x * weights); error = y - h; weights = weights + alpha * x' * error;%注意点1 end end
2、Sigmoid
%% sigmoid function function out = sigmoid(x) out = 1./(1+exp(-x)); end
3、主程序
%----start----- data = load('testSet.txt');%导入数据 [m,n] = size(data);%行和列 o = ones(m,1); dataX = data(:,1:2); X = [o,dataX]; Y = data(:,3); %--experiments-- weights = gradient(X,Y); %% plot the pic Ypic = X * weights; x_1 = X(:,2); x_2 = X(:,3); hold on for i = 1 : 100 if Y(i,:) == 0 plot(x_1(i,:),x_2(i,:),'.g'); else plot(x_1(i,:),x_2(i,:),'.r'); end end x = -3.0:0.1:3; y = (-weights(1)-weights(2)*x)/weights(3);%注意点2 plot(x,y);
4、测试的数据以及最终的分类
五、注意点
在程序的实现过程中有两个注意点,分别用注释标出,第一处在梯度上升法中的求权重weights的公式;第二处是主程序中的注释标出。1、先说说第一处:
令,则
。可知
,假设有m个样本,且样本之间相互独立。则似然函数为
。
取对数
。对其中一个样本而言求偏导:
。要求极大似然估计,故要使用梯度上升法求最大值:
。
2、再说说第二处:
要画出拟合直线,横坐标为x_1,纵坐标为x_2,直线的方程为,求出x_1和x_2的对应关系即可。
本实验的数据
相关文章推荐
- 简单易学的机器学习算法——线性回归(2)
- 简单易学的机器学习算法——神经网络之BP神经网络
- 简单易学的机器学习算法——极限学习机(ELM)
- 简单易学的机器学习算法——EM算法
- 简单易学的机器学习算法——极限学习机(ELM)
- 简单易学的机器学习算法——受限玻尔兹曼机RBM
- 简单易学的机器学习算法——Mean Shift聚类算法
- 简单易学的机器学习算法——协同过滤推荐算法(2)
- 简单易学的机器学习算法——极限学习机(ELM)
- 简单易学的机器学习算法——极限学习机(ELM)
- 简单易学的机器学习算法——协同过滤推荐算法(1)
- 简单易学的机器学习算法——Softmax Regression
- 简单易学的机器学习算法——朴素贝叶斯
- 简单易学的机器学习算法——基于密度的聚类算法DBSCAN
- 简单易学的机器学习算法——朴素贝叶斯
- 简单易学的机器学习算法——岭回归(Ridge Regression)
- 简单易学的机器学习算法——lasso
- 简单易学的机器学习算法——协同过滤推荐算法(2)
- 简单易学的机器学习算法——Mean Shift聚类算法
- 简单易学的机器学习算法——神经网络之BP神经网络