用svm做回归预测,为什么预测值都是一样的?
载入数据train_x,train_y,test_x,test_y后,用下面两条命令做回归预测model=svmtrain(train_y,train_x,'-s3-t2...
载入数据train_x,train_y,test_x,test_y后,用下面两条命令做回归预测model = svmtrain(train_y,train_x,'-s 3 -t 2 -c 15000 -g 128 -p 0.001' );[predict_y,pmse,dec_value] = svmpredict(test_y,test_x,model);结果发现预测值predict_y里所有值都一样,平方相关系数也有问题Squared correlation coefficient = 1.#INF (regression)。后来加了数据的归一化[train_x,test_x,ps] = scaleForSVM(train_x,test_x,0,1) [train_y,test_y,ps] = scaleForSVM(train_y,test_y,0,1)平方相关系数算出值了,但是predict_y里仍然所有值都一样?!直接用faruto封装好的[predict_Y,mse,r] = SVR(train_y,train_x,test_y,test_x,Method_option);则没有上述问题。大伙给支支招啊!
展开
7个回答
推荐于2018-03-31
展开全部
你看看支持向量机的书或者faruto的教程,预测值一样的话肯定是你选择的参数有问题,model = svmtrain(train_y,train_x,'-s 3 -t 2 -c 15000 -g 128 -p 0.001' );
展开全部
-p 0.001'太小了,选成0.1就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一,要先看你建立的回归方程中各个自变量是否都具有显著预测作用;第二,你的回归方程预测效果如何,也就是决定系数R方有多大,如果预测效果很差,用方程计算出来的值和原始值肯定出入很大。除非R方等于1,否则不可能用方程预测出来的值都和原始值完全一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我估计你是这句话有问题
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
你可能在最后加了一个random_state = 0
把这个去掉就行
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
你可能在最后加了一个random_state = 0
把这个去掉就行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我发现我的问题是gamma那个参数设置的太大了,在默认参数附近设置就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询