实战 Kaggle 比赛:预测房价

你好,我独热编码后也是330个特征,请问你现在解决了吗?到底是什么原因导致少了一个特征啊

你好,请问330的问题怎么解决啊,我也少一个特征

我也是k :smiling_face_with_tear:,听说是有些版本下none会被当做na缺失值,所以少了特征为none的独热编码,但不知道怎么解决呜呜呜

找到解决方案了,在train.csv和test.csv文件里去把None全部替换成None_或者None_pea就行了,反正别是None,用ide的查找加全部替换就可以了

要么就是把summary那一列去掉,要么对该列单独使用ordinalencoder(但会引入顺序关系,可能会干扰模型)、要么仔细观察这一列数据,检查是否有价值,如果没有额外的信息价值是可以去掉该列特征的(可以使用互信息查看)。

有没有较好的调参策略,这个感觉还是很难调的。

目前最好的成绩是这样的

loss = nn.MSELoss()
in_features = train_features.shape[1]
def get_net():
    net = nn.Sequential(
        nn.Linear(in_features,1024),
        nn.ReLU(),
        nn.Linear(1024,1)
    )
    return net

image

增大batch_size可以让loss下降得更平滑,如果batch_size比较大train_loss还是很抖的话,可以尝试降低学习率和惩罚系数

调了又调,终于调出来,线性模型最低到0.14,换成神经网络模型可以再低一些,到0.12697,其它基本没动,lr改为0.01,weight_decay到5,k值自己测过5或者8都差不多,不影响泛化误差的值

不可以,使用one-hot是为了保证类别之间的距离相等;如果使用1、2、3,那么红和蓝之间的距离就变了,而且这样的序号乘上权重的话,2和3还会有额外的放大。

我认为也是截断操作会导致梯度消失,训练效果不行