| 6 | 1/1 | 返回列表 |
| 查看: 1587 | 回復(fù): 5 | |||
zlp-lw木蟲 (正式寫手)
|
[交流]
svm 預(yù)測 已有2人參與
|
|
各位大俠: 您好,我用30個案例分析中的第14章的svm回歸預(yù)測抑制劑的半濃度,并把其程序進(jìn)行改寫,但是出現(xiàn)了一些意想不到的情況。特向您請教:在第14章的例子中,最后的測試為什么不用測試集,而是用原始訓(xùn)練數(shù)據(jù)做測試,這樣的測試效果很好,但是有什么效果呢?在我做的例子中,我用42個數(shù)據(jù)作為訓(xùn)練,10個數(shù)據(jù)作為測試集,對測試集我照著您這個例子中的訓(xùn)練集進(jìn)行了歸一化、反歸一化處理,最后用訓(xùn)練模型進(jìn)行測試,效果非常的差,我不知道這是什么原因?是我程序哪里出了問題,您能幫我看一下嗎,我也30個案例分析的忠實(shí)讀者。謝謝您 xx=xlsread('1.xls'); y=xlsread('1-1.xls'); xx=xx'; sh=[y,xx]; %% 數(shù)據(jù)的提取和預(yù)處理 % 數(shù)據(jù)是一個52*6的double型的矩陣,每一行表示每一天的負(fù)荷數(shù)據(jù)和影響因素 % 提取數(shù)據(jù) [m,n] = size(x); ts = x(1:m,1); tsx = x(1:m,2:6); % 數(shù)據(jù)預(yù)處理,將原始數(shù)據(jù)進(jìn)行歸一化 ts = ts'; tsx = tsx'; % mapminmax為matlab自帶的映射函數(shù) % 對ts進(jìn)行歸一化 [TS,TSps] = mapminmax(ts,1,2); % 對TS進(jìn)行轉(zhuǎn)置,以符合libsvm工具箱的數(shù)據(jù)格式要求 TS = TS'; % mapminmax為matlab自帶的映射函數(shù) % 對tsx進(jìn)行歸一化 [TSX,TSXps] = mapminmax(tsx,1,2); % 對TSX進(jìn)行轉(zhuǎn)置,以符合libsvm工具箱的數(shù)據(jù)格式要求 TSX = TSX'; %% 選擇回歸預(yù)測分析最佳的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ò)回歸預(yù)測 [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ù)','回歸預(yù)測數(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進(jìn)行參數(shù)尋優(yōu),可是數(shù)據(jù)的輸入不一樣時預(yù)測的結(jié)果不一樣,下面是我的數(shù)據(jù)輸入的程序,幫我看看是什么原因吧? %% 數(shù)據(jù)的提取和預(yù)處理 % 載入測試數(shù)據(jù)上證指數(shù)(1990.12.19-2009.08.19) % 數(shù)據(jù)是一個4579*6的double型的矩陣,每一行表示每一天的上證指數(shù) % 6列分別表示當(dāng)天上證指數(shù)的開盤指數(shù),指數(shù)最高值,指數(shù)最低值,收盤指數(shù),當(dāng)日交易量,當(dāng)日交易額. 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ù)預(yù)處理,將原始數(shù)據(jù)進(jìn)行歸一化 ts = ts'; tsx = tsx'; % mapminmax為matlab自帶的映射函數(shù) [TS,TSps] = mapminmax(ts); % 將映射函數(shù)的范圍參數(shù)分別置為1和2 TSps.ymin = 1; TSps.ymax = 2; % 對ts進(jìn)行歸一化 [TS,TSps] = mapminmax(ts,TSps); % 畫出原始上證指數(shù)的每日開盤數(shù)歸一化后的圖像 figure; plot(TS,'LineWidth',2); title('原始上證指數(shù)的每日開盤數(shù)歸一化后的圖像','FontSize',12); grid on; % 對TS進(jìn)行轉(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進(jìn)行歸一化 [TSX,TSXps] = mapminmax(tsx,TSXps); % 對TSX進(jìn)行轉(zhuǎn)置,以符合libsvm工具箱的數(shù)據(jù)格式要求 TSX = TSX'; TSX1 = TSX(43:m,1:n); TSX = TSX(1:m-10,1:n); 這個輸入,預(yù)測的效果是非常好的,其相關(guān)系數(shù)都達(dá)到了0.9996左右了,而用下面的輸入程序,則預(yù)測結(jié)果不太理想。。 %% 數(shù)據(jù)的提取和預(yù)處理 % 載入測試數(shù)據(jù)上證指數(shù)(1990.12.19-2009.08.19) % 數(shù)據(jù)是一個4579*6的double型的矩陣,每一行表示每一天的上證指數(shù) % 6列分別表示當(dāng)天上證指數(shù)的開盤指數(shù),指數(shù)最高值,指數(shù)最低值,收盤指數(shù),當(dāng)日交易量,當(dāng)日交易額. 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ù)預(yù)處理,將原始數(shù)據(jù)進(jìn)行歸一化 ts = ts'; tsx = tsx'; % mapminmax為matlab自帶的映射函數(shù) [TS,TSps] = mapminmax(ts); % 將映射函數(shù)的范圍參數(shù)分別置為1和2 TSps.ymin = 1; TSps.ymax = 2; % 對ts進(jìn)行歸一化 [TS,TSps] = mapminmax(ts,TSps); % 畫出原始上證指數(shù)的每日開盤數(shù)歸一化后的圖像 figure; plot(TS,'LineWidth',2); title('原始上證指數(shù)的每日開盤數(shù)歸一化后的圖像','FontSize',12); grid on; % 對TS進(jìn)行轉(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進(jìn)行歸一化 [TSX,TSXps] = mapminmax(tsx,TSXps); % 對TSX進(jìn)行轉(zhuǎn)置,以符合libsvm工具箱的數(shù)據(jù)格式要求 TSX = TSX'; TSX1 = TSX(43:m,2:n); TSX = TSX(1:m-10,2:n); 希望您和各位能指點(diǎn)指點(diǎn)。。。 |
木蟲 (正式寫手)
|
本帖內(nèi)容被屏蔽 |
| 6 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 277材料科學(xué)與工程080500求調(diào)劑 +7 | 自由煎餅果子 2026-03-16 | 7/350 |
|
|---|---|---|---|---|
|
[考研] 材料與化工085600,總分304,本科有兩篇sci參與,求調(diào)劑 +4 | 幸運(yùn)的醬醬 2026-03-22 | 5/250 |
|
|
[考研] 260求調(diào)劑 +3 | 朱芷琳 2026-03-20 | 4/200 |
|
|
[考研] 286分人工智能專業(yè)請求調(diào)劑愿意跨考! +4 | lemonzzn 2026-03-17 | 8/400 |
|
|
[考研] 資源與環(huán)境 調(diào)劑申請(333分) +5 | holy J 2026-03-21 | 5/250 |
|
|
[考研] 初試 317 +7 | 半拉月丙 2026-03-20 | 7/350 |
|
|
[考研] 材料 271求調(diào)劑 +5 | 展信悅_ 2026-03-21 | 5/250 |
|
|
[考研] 296求調(diào)劑 +4 | www_q 2026-03-20 | 4/200 |
|
|
[考研] 299求調(diào)劑 +5 | shxchem 2026-03-20 | 7/350 |
|
|
[考研] 材料與化工(0856)304求 B區(qū) 調(diào)劑 +3 | 邱gl 2026-03-21 | 3/150 |
|
|
[考研] 一志愿山大07化學(xué) 332分 四六級已過 本科山東雙非 求調(diào)劑! +3 | 不想理你 2026-03-16 | 3/150 |
|
|
[考研] 一志愿天津大學(xué)化學(xué)工藝專業(yè)(081702)315分求調(diào)劑 +12 | yangfz 2026-03-17 | 12/600 |
|
|
[考研] 301求調(diào)劑 +10 | yy要上岸呀 2026-03-17 | 10/500 |
|
|
[考研] 294求調(diào)劑材料與化工專碩 +15 | 陌の森林 2026-03-18 | 15/750 |
|
|
[考研] 288求調(diào)劑 +16 | 于海海海海 2026-03-19 | 16/800 |
|
|
[考研] 350求調(diào)劑 +5 | weudhdk 2026-03-19 | 5/250 |
|
|
[考研] 353求調(diào)劑 +3 | 拉鉤不許變 2026-03-20 | 3/150 |
|
|
[考研] 環(huán)境工程調(diào)劑 +9 | 大可digkids 2026-03-16 | 9/450 |
|
|
[考研] 求調(diào)劑 +3 | 暗涌afhb 2026-03-16 | 3/150 |
|
|
[論文投稿] 有沒有大佬發(fā)小論文能帶我個二作 +3 | 增銳漏人 2026-03-17 | 4/200 |
|