技巧
1、read csv 文件可以用open file直接读取,然后使用numpy.array转ndarray(注意因为读出来是str,所以需要设置dtype=float); 也可以使用pandas.readcsv读取,读取结果数据类型为pandas.dataframe(可使用loc,iloc选择数据,loc为行和列的名称,iloc为行和列号)
2、read_csv把第一行为字段名,所以不用像open file手动跳过第一行
3、计算模型值值得时候,比如计算sigmod值得时候,为防止出现值大于0 但是无线接近0值出现,使用np.clip(list, list_min, list_max),当出现超过上下限的时候,分别取上下限值
4、numpy.dot 和 numpy.matmul q区别,常用的二维内积运算没有区别 https://blog.csdn.net/ACTerminate/article/details/96151132
逻辑回归求梯度使用到了*
a,b 2个array的*为a中的每一列和b中的每一列相乘 https://blog.csdn.net/felicityguo/article/details/80508771
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.array([1,2,3])
a*b # array([[1,4,9],[4,10,18],[7,16,27]]), a中的每一列的每个数与b中的每一列的每个数都相乘,即扩大a中每一列的倍数(相加时也是一样)
b*a #这个结果与a*b是一样的
5、numpy中的四舍五入函数np.around(array, decimals=0, out=None) ,a为输入数组,decimals精确位,默认0,保留0位小数 https://blog.csdn.net/tz_zs/article/details/80775256
np.floor 向下取整,常用于除法之后取整
Bug
1、没有仔细看数据,加载每行数据,第一列的序号都没有删除