请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于使用随机梯度下降法训练模型时出现的问题

图片描述
不断重复运行图中代码,大多数值都是趋近0.8,但是无论n_iters参数设置多大,都有可能出现负数,只是出现概率的问题,请问遇到这种情况有没有好的解决方法呢?

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2019-11-22 03:25:17

你的数据是?


如果前面的操作没有问题,这种情况大概率的说明,你的数据本身根本不是线性的,不适合用线性回归。和算法的参数没关系了。


解决方案:

1 从特征工程入手。特征工程可以参考这里:https://coding.imooc.com/learn/questiondetail/40722.html

2 使用其他模型,尤其是非线性模型。


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 怦怦 #1
    我用的是sklearn模块中的boston数据,处理方法和老师上课时一样
    
    from sklearn import datasets
    boston = datasets.load_boston()
    X = boston.data
    y = boston.target
    X = X[y < 50.0]
    y = y[y < 50.0]
    
    # 分隔原始数据集,得到训练数据集和测试数据集
    %run D:/pycharm/project/playML/model_selection.py
    X_train, X_test, y_train, y_test = train_test_split(X, y, seed=666)
    
    # 对训练数据进行归一化处理
    from sklearn.preprocessing import StandardScaler
    standarscaler = StandardScaler()
    standarscaler.fit(X_train)
    X_train_standard = standarscaler.transform(X_train)
    X_test_standard = standarscaler.transform(X_test)
    回复 有任何疑惑可以回复我~ 2019-11-22 22:36:48
  • liuyubobobo 回复 提问者 怦怦 #2
    我运行了一遍课程的代码,没有你说的问题。请尝试在你的环境下运行课程的代码,看是否有同样的问题?如果没有问题,请仔细比对调试,看看自己的代码哪里有问题?本小节课程官方代码传送门:https://git.imooc.com/coding-169/coding-169/src/master/06-Gradient-Descent/07-SGD-in-scikit-learn 加油!:)
    回复 有任何疑惑可以回复我~ 2019-11-26 07:31:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信