| 6 | 1/1 | 返回列表 |
| 查看: 1584 | 回復: 5 | |||
zlp-lw木蟲 (正式寫手)
|
[交流]
svm 預測 已有2人參與
|
|
各位大俠: 您好,我用30個案例分析中的第14章的svm回歸預測抑制劑的半濃度,并把其程序進行改寫,但是出現(xiàn)了一些意想不到的情況。特向您請教:在第14章的例子中,最后的測試為什么不用測試集,而是用原始訓練數(shù)據(jù)做測試,這樣的測試效果很好,但是有什么效果呢?在我做的例子中,我用42個數(shù)據(jù)作為訓練,10個數(shù)據(jù)作為測試集,對測試集我照著您這個例子中的訓練集進行了歸一化、反歸一化處理,最后用訓練模型進行測試,效果非常的差,我不知道這是什么原因?是我程序哪里出了問題,您能幫我看一下嗎,我也30個案例分析的忠實讀者。謝謝您 xx=xlsread('1.xls'); y=xlsread('1-1.xls'); xx=xx'; sh=[y,xx]; %% 數(shù)據(jù)的提取和預處理 % 數(shù)據(jù)是一個52*6的double型的矩陣,每一行表示每一天的負荷數(shù)據(jù)和影響因素 % 提取數(shù)據(jù) [m,n] = size(x); ts = x(1:m,1); tsx = x(1:m,2:6); % 數(shù)據(jù)預處理,將原始數(shù)據(jù)進行歸一化 ts = ts'; tsx = tsx'; % mapminmax為matlab自帶的映射函數(shù) % 對ts進行歸一化 [TS,TSps] = mapminmax(ts,1,2); % 對TS進行轉(zhuǎn)置,以符合libsvm工具箱的數(shù)據(jù)格式要求 TS = TS'; % mapminmax為matlab自帶的映射函數(shù) % 對tsx進行歸一化 [TSX,TSXps] = mapminmax(tsx,1,2); % 對TSX進行轉(zhuǎn)置,以符合libsvm工具箱的數(shù)據(jù)格式要求 TSX = TSX'; %% 選擇回歸預測分析最佳的SVM參數(shù)c&g bestc=1;bestg=1.6245; bestc,cmd = ['-c ', num2str(bestc), ' -g ', num2str(bestg) , ' -s 3 -p 0.01']; model = svmtrain(TS,TSX,cmd); %% SVM網(wǎng)絡回歸預測 [predict,mse] = svmpredict(TS,TSX,model); predict = mapminmax('reverse',predict',TSps); predict = predict'; % 打印回歸結果 str = sprintf( '均方誤差 MSE = %g 相關系數(shù) R = %g%%',mse(2),mse(3)*100); disp(str); %% 結果分析 figure; hold on; plot(ts,'-o'); plot(predict,'r-^'); legend('原始數(shù)據(jù)','回歸預測數(shù)據(jù)'); hold off; xlabel('小時','FontSize',12); ylabel('/Wh','FontSize',12); grid on; figure; error = predict - ts'; plot(error,'rd'); title('誤差圖(predicted data - original data)','FontSize',12); xlabel('小時','FontSize',12); ylabel('誤差量','FontSize',12); grid on; figure; error = (predict - ts')./ts'; plot(error,'rd'); title('相對誤差圖(predicted data - original data)/original data','FontSize',12); xlabel('小時)','FontSize',12); ylabel('相對誤差量','FontSize',12); grid on; |
木蟲 (正式寫手)
銀蟲 (小有名氣)
木蟲 (正式寫手)
|
我用SVMcgForRegress進行參數(shù)尋優(yōu),可是數(shù)據(jù)的輸入不一樣時預測的結果不一樣,下面是我的數(shù)據(jù)輸入的程序,幫我看看是什么原因吧? %% 數(shù)據(jù)的提取和預處理 % 載入測試數(shù)據(jù)上證指數(shù)(1990.12.19-2009.08.19) % 數(shù)據(jù)是一個4579*6的double型的矩陣,每一行表示每一天的上證指數(shù) % 6列分別表示當天上證指數(shù)的開盤指數(shù),指數(shù)最高值,指數(shù)最低值,收盤指數(shù),當日交易量,當日交易額. xx=xlsread('TXFZMSHF1.xls'); y=xlsread('ShiyanzhiDuishu1.xls'); xx=xx'; sh=[y,xx]; [m,n] = size(sh); ts = sh(1:m,1); tsx = sh(1:m, ;% 畫出原始上證指數(shù)的每日開盤數(shù) %figure; %plot(ts,'LineWidth',2); %title('上證指數(shù)的每日開盤數(shù)(1990.12.20-2009.08.19)','FontSize',12); %grid on; % 數(shù)據(jù)預處理,將原始數(shù)據(jù)進行歸一化 ts = ts'; tsx = tsx'; % mapminmax為matlab自帶的映射函數(shù) [TS,TSps] = mapminmax(ts); % 將映射函數(shù)的范圍參數(shù)分別置為1和2 TSps.ymin = 1; TSps.ymax = 2; % 對ts進行歸一化 [TS,TSps] = mapminmax(ts,TSps); % 畫出原始上證指數(shù)的每日開盤數(shù)歸一化后的圖像 figure; plot(TS,'LineWidth',2); title('原始上證指數(shù)的每日開盤數(shù)歸一化后的圖像','FontSize',12); grid on; % 對TS進行轉(zhuǎn)置,以符合libsvm工具箱的數(shù)據(jù)格式要求 TS = TS'; TS1 = TS(43:m,1); TS = TS(1:m-10,1); % mapminmax為matlab自帶的映射函數(shù) [TSX,TSXps] = mapminmax(tsx); % 將映射函數(shù)的范圍參數(shù)分別置為1和2 TSXps.ymin = 1; TSXps.ymax = 2; % 對tsx進行歸一化 [TSX,TSXps] = mapminmax(tsx,TSXps); % 對TSX進行轉(zhuǎn)置,以符合libsvm工具箱的數(shù)據(jù)格式要求 TSX = TSX'; TSX1 = TSX(43:m,1:n); TSX = TSX(1:m-10,1:n); 這個輸入,預測的效果是非常好的,其相關系數(shù)都達到了0.9996左右了,而用下面的輸入程序,則預測結果不太理想。。 %% 數(shù)據(jù)的提取和預處理 % 載入測試數(shù)據(jù)上證指數(shù)(1990.12.19-2009.08.19) % 數(shù)據(jù)是一個4579*6的double型的矩陣,每一行表示每一天的上證指數(shù) % 6列分別表示當天上證指數(shù)的開盤指數(shù),指數(shù)最高值,指數(shù)最低值,收盤指數(shù),當日交易量,當日交易額. xx=xlsread('1.xls'); y=xlsread('1-1.xls'); xx=xx'; sh=[y,xx]; [m,n] = size(sh); ts = sh(1:m,1); tsx = sh(1:m, ;% 畫出原始上證指數(shù)的每日開盤數(shù) %figure; %plot(ts,'LineWidth',2); %title('上證指數(shù)的每日開盤數(shù)(1990.12.20-2009.08.19)','FontSize',12); %grid on; % 數(shù)據(jù)預處理,將原始數(shù)據(jù)進行歸一化 ts = ts'; tsx = tsx'; % mapminmax為matlab自帶的映射函數(shù) [TS,TSps] = mapminmax(ts); % 將映射函數(shù)的范圍參數(shù)分別置為1和2 TSps.ymin = 1; TSps.ymax = 2; % 對ts進行歸一化 [TS,TSps] = mapminmax(ts,TSps); % 畫出原始上證指數(shù)的每日開盤數(shù)歸一化后的圖像 figure; plot(TS,'LineWidth',2); title('原始上證指數(shù)的每日開盤數(shù)歸一化后的圖像','FontSize',12); grid on; % 對TS進行轉(zhuǎn)置,以符合libsvm工具箱的數(shù)據(jù)格式要求 TS = TS'; TS1 = TS(43:m,1); TS = TS(1:m-10,1); % mapminmax為matlab自帶的映射函數(shù) [TSX,TSXps] = mapminmax(tsx); % 將映射函數(shù)的范圍參數(shù)分別置為1和2 TSXps.ymin = 1; TSXps.ymax = 2; % 對tsx進行歸一化 [TSX,TSXps] = mapminmax(tsx,TSXps); % 對TSX進行轉(zhuǎn)置,以符合libsvm工具箱的數(shù)據(jù)格式要求 TSX = TSX'; TSX1 = TSX(43:m,2:n); TSX = TSX(1:m-10,2:n); 希望您和各位能指點指點。。。 |
木蟲 (正式寫手)
|
本帖內(nèi)容被屏蔽 |
| 6 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 317求調(diào)劑 +12 | 申子申申 2026-03-19 | 18/900 |
|
|---|---|---|---|---|
|
[考研] 一志愿武理材料工程348求調(diào)劑 +5 |  ̄^ ̄゜汗 2026-03-19 | 7/350 |
|
|
[考研] 308求調(diào)劑 +3 | 墨墨漠 2026-03-21 | 3/150 |
|
|
[考研] 318求調(diào)劑 +4 | plum李子 2026-03-21 | 7/350 |
|
|
[考研] 考研調(diào)劑 +4 | 來好運來來來 2026-03-21 | 4/200 |
|
|
[考研] 354求調(diào)劑 +7 | Tyoumou 2026-03-18 | 10/500 |
|
|
[考研] 材料求調(diào)劑 +5 | @taotao 2026-03-21 | 5/250 |
|
|
[考研] 297求調(diào)劑 +3 | 喜歡還是不甘心 2026-03-20 | 3/150 |
|
|
[考研] 工科0856求調(diào)劑 +3 | 沐析汀汀 2026-03-21 | 3/150 |
|
|
[考研] 【考研調(diào)劑】化學專業(yè) 281分,一志愿四川大學,誠心求調(diào)劑 +11 | 吃吃吃才有意義 2026-03-19 | 11/550 |
|
|
[考研] 材料 271求調(diào)劑 +5 | 展信悅_ 2026-03-21 | 5/250 |
|
|
[考研] 299求調(diào)劑 +4 | 某某某某位 2026-03-21 | 4/200 |
|
|
[考研] 279分求調(diào)劑 一志愿211 +14 | chaojifeixia 2026-03-19 | 15/750 |
|
|
[考研] 一志愿天津大學化學工藝專業(yè)(081702)315分求調(diào)劑 +12 | yangfz 2026-03-17 | 12/600 |
|
|
[考研] 一志愿重慶大學085700資源與環(huán)境專碩,總分308求調(diào)劑 +3 | 墨墨漠 2026-03-18 | 3/150 |
|
|
[考研] 一志愿中海洋材料工程專碩330分求調(diào)劑 +8 | 小材化本科 2026-03-18 | 8/400 |
|
|
[考研] 295材料求調(diào)劑,一志愿武漢理工085601專碩 +5 | Charlieyq 2026-03-19 | 5/250 |
|
|
[考研] 298-一志愿中國農(nóng)業(yè)大學-求調(diào)劑 +9 | 手機用戶 2026-03-17 | 9/450 |
|
|
[考研] 328求調(diào)劑,英語六級551,有科研經(jīng)歷 +4 | 生物工程調(diào)劑 2026-03-16 | 12/600 |
|
|
[碩博家園] 湖北工業(yè)大學 生命科學與健康學院-課題組招收2026級食品/生物方向碩士 +3 | 1喜春8 2026-03-17 | 5/250 |
|