| 5 | 1/1 | 返回列表 |
| 查看: 1588 | 回復: 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)絡(luò)回歸預測 [predict,mse] = svmpredict(TS,TSX,model); predict = mapminmax('reverse',predict',TSps); predict = predict'; % 打印回歸結(jié)果 str = sprintf( '均方誤差 MSE = %g 相關(guān)系數(shù) R = %g%%',mse(2),mse(3)*100); disp(str); %% 結(jié)果分析 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ù)的輸入不一樣時預測的結(jié)果不一樣,下面是我的數(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); 這個輸入,預測的效果是非常好的,其相關(guān)系數(shù)都達到了0.9996左右了,而用下面的輸入程序,則預測結(jié)果不太理想。。 %% 數(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); 希望您和各位能指點指點。。。 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 材料與化工085600,總分304,本科有兩篇sci參與,求調(diào)劑 +4 | 幸運的醬醬 2026-03-22 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 305分求調(diào)劑(食品工程) +4 | Sxy112 2026-03-21 | 6/300 |
|
|
[考研] 考研調(diào)劑 +4 | 來好運來來來 2026-03-21 | 4/200 |
|
|
[基金申請] 山東省面上項目限額評審 +4 | 石瑞0426 2026-03-19 | 4/200 |
|
|
[考研] 材料學碩301分求調(diào)劑 +7 | Liyouyumairs 2026-03-21 | 7/350 |
|
|
[考研] 266求調(diào)劑 +3 | 哇呼哼呼哼 2026-03-20 | 3/150 |
|
|
[考研] 330求調(diào)劑0854 +3 | assdll 2026-03-21 | 3/150 |
|
|
[考研] 材料工程(專)一志愿985 初試335求調(diào)劑 +3 | hiloiy 2026-03-17 | 4/200 |
|
|
[考研] 332求調(diào)劑 +4 | ydfyh 2026-03-17 | 4/200 |
|
|
[考研] 22408 344分 求調(diào)劑 一志愿 華電計算機技術(shù) +4 | solanXXX 2026-03-20 | 4/200 |
|
|
[考研] 材料專碩英一數(shù)二306 +7 | z1z2z3879 2026-03-18 | 7/350 |
|
|
[考研] 294求調(diào)劑材料與化工專碩 +15 | 陌の森林 2026-03-18 | 15/750 |
|
|
[考研] 321求調(diào)劑 +9 | 何潤采123 2026-03-18 | 11/550 |
|
|
[考研] 中南大學化學學碩337求調(diào)劑 +3 | niko- 2026-03-19 | 6/300 |
|
|
[考研] 環(huán)境工程調(diào)劑 +9 | 大可digkids 2026-03-16 | 9/450 |
|
|
[考研] 招收調(diào)劑碩士 +4 | lidianxing 2026-03-19 | 12/600 |
|
|
[考研] 0703化學調(diào)劑 +5 | pupcoco 2026-03-17 | 8/400 |
|
|
[考研] 328求調(diào)劑,英語六級551,有科研經(jīng)歷 +4 | 生物工程調(diào)劑 2026-03-16 | 12/600 |
|
|
[考研] 一志愿蘇州大學材料工程(085601)專碩有科研經(jīng)歷三項國獎兩個實用型專利一項省級立項 +6 | 大火山小火山 2026-03-16 | 8/400 |
|
|
[論文投稿] 有沒有大佬發(fā)小論文能帶我個二作 +3 | 增銳漏人 2026-03-17 | 4/200 |
|