第二课堂AI实践课堂笔记【阿里云天池】

关于pytorch
Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,pytorch的计算图是动态的,可以根据计算需要实时改变计算图。但由于Torch语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 Tensorflow 抢走用户。作为经典机器学习库 Torch 的端口,PyTorch 为 Python 语言使用者提供了舒适的写代码选择。

Epoch,Batch,Iteration,learning_rate
epoch:所有训练数据集都训练过一次
batch:使用训练集的一小部分对模型权重进行反向传播的参数更新
batch_size:一个batch中包含的样本的数目,通常为2的n次幂,64,128,256.网络较大时用64.
Iteration:完成一次epoch所需要的batch个数
learning_rate:(lr)参数学习率(跨度or步长?)

one-hot编码
每个特殊的分类值都被赋予一个唯一二进制向量,也被称为独热向量,因为这个向量只有一个位置是1,剩下的均为零。

归一化(特征缩放)
用多指标综合评价时因不同指标量度不同,对各指标的原始数据进行特征缩放。

# 处理离散数据
for col in config['cate_cols']:
    data[col] = data[col].fillna('-1')
data = oneHotEncode(data, config['cate_cols'])

# 处理连续数据
for col in config['num_cols']:
    data[col] = data[col].fillna(0)
    data[col] = (data[col]-data[col].min()) / (data[col].max()-data[col].min())

# 处理(可能)无关数据 
data.drop(['name', 'regionCode'], axis=1, inplace=True)

data.columns

搭建神经网络结构

# 定义网络结构
class Network(nn.Module):
    def __init__(self, in_dim, hidden_1, hidden_2, hidden_3, hidden_4):
        super().__init__()
        self.layers = nn.Sequential(
            nn.Linear(in_dim, hidden_1),
            nn.BatchNorm1d(hidden_1),
            nn.ReLU(),
            nn.Linear(hidden_1, hidden_2),
            nn.BatchNorm1d(hidden_2),
            nn.ReLU(),
            nn.Linear(hidden_2, hidden_3),
            nn.BatchNorm1d(hidden_3),
            nn.ReLU(),
            nn.Linear(hidden_3, hidden_4),
            nn.BatchNorm1d(hidden_4),
            nn.ReLU(),
            nn.Linear(hidden_4, 1)
        )

    def forward(self, x):
        y = self.layers(x)
        return y

定义损失函数和优化器

criterion = nn.MSELoss()
criterion.to(config['device'])
optimizer = optim.Adam(model.parameters(), lr=config['learning_rate'])

损失函数
损失函数(loss function)又称为误差函数(error function),是衡量模型好坏的标准,用于估量模型的预测值与真实值的不一致程度,是一个非负实值函数。

二手车问题解决讲解部分(调库版)
将题目提供的压缩包解压并读取数据

#定义解压.zip包函数
def unzip_file(zip_filepath,destpath):
    with zipfile.Zipfile(zip_filepath,'r') as zip_ref):
        zip_ref.extractall(dest_path)

把两张表放在一块进行处理

data=pd.concat([train_data,test_data])

定义one hot编码函数,处理离散,连续,无关数据
通过题目要求与数据,选择相应数据种类。

拿出测试集,训练集
测试集和训练集不同,避免影响结果集。

分割测试集训练集
进行预测

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值