所谓的激活函数,就是李宏毅老师讲到的sigmoid函数 和 hard sigmoid函数 ,ReLU函数那些
现在一点点慢慢探索,会成为日后想都做不到的经历,当你啥也不会的时候,才是慢慢享受探索的过程。
有一说一,用chatGPT分解代码是真的香!
part1:初始文件处理
补充关于Shell命令的相关知识
(1)
(2)
(3)
(4)
关于sys这个标准库的补充知识:
(5)
(6)
这里定义了一个loadDataSet(fileName)的载入数据的函数,参数是一个文件名, 下面一点点的分析这个函数:
-首先:
定义了2个一维数组变量,dataMatrix就是用于存储训练数据的东西,
labelMatrix就是用来存储真实结果的数组
-然后:
打开了一个文件,文件变量是fr
-之后:
对这个文件的内容逐行进行处理,每一行的数据存储到line变量中
由于之后的regression函数代码中调用的是这个文件中的数据,这里提前查看一下是啥?
就是4行数据吧,应该就是之前的pm2.5相关的数据
-再者,这里就是,比如上面的那个data.txt中的数据,一行有3个数据用"\t"制表符进行分隔,结果就是这个3个数据作为curLine[]这个一维数组中的3个数据,反正感觉python对于数据的处理很方便
-之后,
所以,每一行,前2个数据给到dataMat,dataMat中的元素都是2个元素的一维数组,最后一个元素放到labelMat中,labelMat中的元素都是1个元素的一维数组
最后,返回这2个数组即可
part2:定义一个函数
这个standRegres( , )函数有2个参数,都是一维数组变量,之后转换为numpy中的数据类型
之后xTx就是矩阵xMat矩阵转置乘xMat矩阵,但是,xMat本身是一个一维数组,我在想这个结果到底是一个N*N的矩阵呢?还是一个数值呢?先往下看看
如果得到的矩阵的“行列式”的值是0,就直接返回了
否则会计算一个ws,并且返回这个ws,我们来看看这个ws究竟是啥吧!
有点不理解这里的回归系数是啥?先不管了
part3:在最后的regression函数中:
(1)首先是调用loadDataSet函数获取到data.txt中的数据并且规格化给到xMat和yMat,最后计算处ws这个回归系数
(2)感觉最后就是把这个回归系数算出来了,就开始画图了,其实吧,我感觉整个的就干了一件事,就是这个“回归系数”吧,就是那个直线的斜率,感觉上面就是高中的算了一个斜率,服了
算了,还是解释一下这里的画图过程吧:
也就是说,先画出真实值的散点图,然后,绘制一个由xMat和回归系数ws得到的直线