线性回归,逻辑回归个人总结

实验目的:

  1. 掌握线性回归基本原理和内容。
  2. 掌握逻辑回归基本原理和内容。
  3. 能够分析问题,选择合适的线性模型解决问题。
  4. 能够利用线性回归或逻辑回归建模,建立相关模型,并评价模型的好坏。

实验内容:

1.预测鲍鱼的年龄。

此案例所用数据来自UCI数据集,记录鲍鱼的一些相关属性,请根据这些属性构建一个模型来预测鲍鱼的年龄。

基本要求:

1、根据 '性别','长度','直径','高度','整体重量','肉重量','内脏重量','壳重'。对鲍鱼年龄进行预测。构建线性回归模型。

2、使用最小二乘法计算参数

3、使用梯度下降的方式计算参数

2.将香蕉进行分类。

此案例所用数据来自KEEL数据集,记录香蕉的一些相关属性,请根据这些属性构建一个模型将香蕉进行分类。

基本要求:

1、根据提供的数据集,对将香蕉进行分类。构建逻辑回归模型。

2、使用梯度下降的方式计算参数

实验报告要求:

简单描述实验步骤,详细写明程序代码与操作结果。

实验代码:

1.1最小二乘法

线性回归,逻辑回归个人总结_第1张图片

线性回归,逻辑回归个人总结_第2张图片

步骤注释:2.导入numpy包

        3.设置矩阵全部输出,默认会输出一部分

        5.加载abalone.txt文件此时data为一个矩阵

        6.加一列全为1的数据 来当做系数b y=kx+b

        7.截取data中的第10列数据作为y

        8. 截取data中的前9列数据作为x

        10. 线性回归,逻辑回归个人总结_第3张图片

如上图所示公示中,python代码中np.linalg.inv则为矩阵的逆矩阵,np.dot则为矩阵的相乘,transpose()则为矩阵的转置。实际则为图上的公式

11.则为W*x得到相应的y的预测值

12-17. 以下则为模型参数的检验,参考公式为线性回归,逻辑回归个人总结_第4张图片

1.2梯度下降法:

线性回归,逻辑回归个人总结_第5张图片

首先公式推导梯度:

线性回归,逻辑回归个人总结_第6张图片

步骤注释:

41-45:与前面一致,首先加一列全为1的数据(相当于b),然后划分成input(相当于x)和real(相当于y)

46:这个将其设置成迭代200次

47:计算出out(预测值y)

48-49:每次迭代输出预测值

50-51:这里首先计算出第一项的数据,因为样本数据一共有4177个数据,需要写一个for循环累加其中的(真实值-预测值)*x的和,所以需要在外边先设置一个全局变量delta

54:循环4177次,

57-58:环累加其中的(真实值-预测值)*x + delta (此处用到了50-51)

60:设置delat为负数,表示为梯度下降 ,而不是上升

61:这里设置步长为0.0001

64-65:最终则输出为最佳权重

2.预测香蕉

线性回归,逻辑回归个人总结_第7张图片

本题梯度下降梯度求解的方法与第一题一样。

这里引入了Sigmoid函数,

线性回归,逻辑回归个人总结_第8张图片

思路:将求得一个w 然后预测y,然后将y作为自变量带入Singmoid函数中,得到相应的函数值,预测值大于0.5且真实值大于0.5或者预测值小于0.5且真实值小于0.5,则视为预测正确,最终统计预测正确的个数得到sum。实验结果如下。

实验结果:

1.1最小二乘法:

线性回归,逻辑回归个人总结_第9张图片

线性回归,逻辑回归个人总结_第10张图片线性回归,逻辑回归个人总结_第11张图片

由于测试集共有4166条数据,前面的不好截取,所以截取最后几十条数据进行对比,可以看到数据拟合度也是很高的。

1.1梯度下降法:

    线性回归,逻辑回归个人总结_第12张图片线性回归,逻辑回归个人总结_第13张图片

同样是截取最后的数据可以看到在1000次迭代后,预测值与输出值基本相拟合

2.香蕉的预测:

线性回归,逻辑回归个人总结_第14张图片

实验反思或感想:

梯度下降是迭代法的一种,可用于求解最小二乘法问题,线性非线性都可以。在求解机器学习模型参数时,即无约束最优化问题时,最常用的就是梯度下降,另一种方法就是最小二乘法。在求损失函数的最小值问题时,可使用梯度下降法一步步迭代得到损失函数的最小值和参数值;如果求损失函数的最大值就要用梯度上升法,所谓梯度下降,最终实际上都是求解函数最值问题,从而求得最理想的参数。

你可能感兴趣的:(逻辑回归,线性回归,python)