Regression based on Kaggle’s kernel

       本次主要介绍最基本的基于Kaggle kernel的jupyter notebook 来实现最简单的回归问题(基于Pytorch版本)。由于时间成本,这里不再对Kaggle的基本使用方法进行介绍,只介绍相关代码实现内容,旨在从代码端让刚入门的学者可以实现对神经网络进行一个简单的入门了解。

       下面简单介绍几个快捷键:                

       1. ctrl+/     用于自动标注

       2.ctrl+[ or ]  用于缩进,可多选行操作

       3.B         用于下添加(在跳出情况下)

       4.A         用于上添加(在跳出情况下)

       5.D         按两下,用于删除(在跳出情况下)

       6.X         用于剪切(在跳出情况下)

       7.V         用于粘贴(在跳出情况下)

一,Regression 回归问题

        回归问题指研究一组随机变量(Y1 ,Y2 ,…,Yi)和另一组(X1,X2,…,Xk)变量之间关系的统计分析方法,又称多重回归分析。通常Y1,Y2,…,Yi是因变量,X1、X2,…,Xk是自变量。回归分析可以理解为一种数学模型。

       本次实验通过创建一些随机数据点(x,y),本次实验采用一元二次方程的形式。基于Pytorch框架构建模型,优化函数采用SGD,损失函数采用MSE。这里面要注意损失函数的选取,回归问题采用MSE等,而分类问题要选区与之对应的损失函数,新手在这里不要搞混。通过定义训练环节,并用Matplotlib绘图库将训练过程数据可视化。话不多说,下面进行代码编写,本实验基于kernel无需安装torch与相关库。

kaggle用的深度学习还是机器学习 kaggle入门_kaggle用的深度学习还是机器学习

kaggle用的深度学习还是机器学习 kaggle入门_kaggle用的深度学习还是机器学习_02

kaggle用的深度学习还是机器学习 kaggle入门_kaggle用的深度学习还是机器学习_03

        这里面采用类继承的形式,继承nn.Module类,实例化并定义自己的神经网络,这里注意若不采用激活函数relu,则此网络为单纯的两个全连接层,那样只能表示线性空间,无法拟合本实验数据(二次方程),因此需要在两层之间增加一个激活函数,使输出可以更加多样化。

kaggle用的深度学习还是机器学习 kaggle入门_损失函数_04

kaggle用的深度学习还是机器学习 kaggle入门_损失函数_05

         本实验结果:

kaggle用的深度学习还是机器学习 kaggle入门_kaggle用的深度学习还是机器学习_06

        由图可知,结果Loss为0.01956。若在集成环境中训练,可见训练过程中的数据可视化。大家可去掉forward中的激活函数,验证实验结果。还可以将数据分布改为高次方程,再进行实验。