Logistic回归分类----梯度上升法
2018-01-06 17:40
351 查看
本算法根据《机器学习实战》一书改编而来,原书使用了Python语言所写,自我感觉没有Matlab好用,所以进行了改写。
Logistic回归分类是一种常用的分类方法,其基本思想是利用现有数据对分类边界线建立回归公式,以此进行分类。本文的实验数据因为量大,所以放在了网盘上,https://pan.baidu.com/s/1qY9jFsg。
以下为实现代码:
下图为仿真结果:
Logistic回归分类是一种常用的分类方法,其基本思想是利用现有数据对分类边界线建立回归公式,以此进行分类。本文的实验数据因为量大,所以放在了网盘上,https://pan.baidu.com/s/1qY9jFsg。
以下为实现代码:
clc; clear; %加载测试数据文件,前两列为坐标值,后两列为类标号 fileID = fopen('D:\matlabFile\Logistic\Logistic.txt'); DS=textscan(fileID,'%f %f %f'); fclose(fileID); %将数据转为矩阵形式 DataMat=cat(2,DS{1},DS{2}); %在dataMat第一列之前再增加都为1的列 [Row,Column]=size(DataMat); DataMat=cat(2,ones(Row,1),DataMat); LabelMat=DS{3}; %重新获得行列数 [Row,Column]=size(DataMat); %%%===利用梯度上升法寻找最佳参数 %设定alpha参数 Alpha=0.001; %设定最大循环次数 MaxCycle=500; %初始化系数矩阵为1 Weight=ones(Column,1); %设定循环结束标志 flag=1; while flag<MaxCycle+1 %调用系统sigmoid函数 h=sigmf(DataMat*Weight,[1,0]); %计算误差 Error=LabelMat-h; %更新系数矩阵 Weight=Weight+Alpha*DataMat'*Error; flag=flag+1; end %画出原始点集 scatter(DataMat(:,2),DataMat(:,3),'filled'); hold on %画出最佳拟合曲线 %定义X的取值范围 x=-3:0.1:3; %计算Y的值域范围 y=(-Weight(1)-Weight(2)*x')/Weight(3); plot(x,y,'r');
下图为仿真结果:
相关文章推荐
- 机器学习——分类算法4:Logistic回归 梯度上升 思想 和 代码解释
- logistics回归--梯度上升算法以及改进--用于二分类
- Logistic回归基础篇之梯度上升算法
- Logistic回归,梯度上升算法理论详解和实现
- 机器学习-Logistic回归之梯度上升法
- Logistic回归分类----随机梯度上升法
- 数据挖掘笔记-分类-回归算法-梯度上升
- Logistic 回归梯度上升优化函数
- Logistic 回归(sigmoid函数,手机的评价,梯度上升,批处理梯度,随机梯度,从疝气病症预测病马的死亡率
- logistic回归梯度上升优化算法
- Logistic 回归与梯度上升算法
- [置顶] Python3《机器学习实战》学习笔记(六):Logistic回归基础篇之梯度上升算法
- 机器学习之logistic回归的梯度上升算法
- Logistic回归的梯度上升法
- 机器学习之logistic回归的梯度上升算法
- 逻辑回归之从Logistic回归到sigmoid与softmax的分类问题
- Logistic回归与梯度下降法
- 斯坦福CS229机器学习课程笔记 part2:分类和逻辑回归 Classificatiion and logistic regression
- 机器学习之logistic回归与分类
- 代码,逻辑回归(logistic_regression)实现mnist分类(TensorFlow实现)