下面是实践百度飞桨上面的pm2.5分类项目_logistic regression相关

part1:数据的引入,和前一个linear regression基本是一样

 

 

 

part2:数据解析——也就是数据的“规格化”

 首先,打算用dataMat[]和labelMat[]数据存储feature和label,并且文件变量fr

然后,是这个for line in fr.readlines()循环,就是逐行的读取字符串到line中,

 比如上面的那个data.txt中的数据,一行有3个数据用"\t"制表符进行分隔,结果就是这个3个数据作为curLine[]这个一维数组中的3个数据,

dataMat,存储的是[1.0,curline[0],curline[1]]作为元素的数组,总共15组

labelMat,存储的是curline[2]作为元素的数组,总共15组

part3:定义那个sigmoid function

part4:通过输入dataMat 和 labelMat作为 训练集,通过线性gradien descent计算出分割线的斜率

 (1)具体的过程应该就是 如何通过训练集中的数据 计算出对应的 logistic regression的分割线的问题,详细可以参考李宏毅老师的 logistic regression相关的代码

(2)里面的alpha是学习率,可以通过设置不同的学习率和循环次数观察结果

part5:绘制出 需要测试的点的数据 并将label用颜色标出, 最后画出由训练集得到的 分割线

 part6:调用上述定义的函数,并且得到最终的结果:

 

 其实这个代码和data.txt给的一点也不好,

(1)它只有训练集,最终的结果也只是在训练集上做的测试

(2)data.txt看着有15组数据,其实只有5组,都是重复的,所以最终的图只有5个点

猜你喜欢

转载自blog.csdn.net/xiao_ZHEDA/article/details/132549294