clc
clear all
% 匯入資料
load('s_data.mat') % **s含量所用資料
n =12; % n 是自變數的個數
m = 1; % m 是因變數的個數
% 讀取訓練資料
train_num = 1600; %訓練樣本數
train_data = s_data(1:train_num,:);
train_input = s_data(1:train_num,1:n);
train_output = s_data(1:train_num,n+1:end);
% 樹的生成
leafs = logspace(1,3,10);
rng('default')
n = numel(leafs);
err = zeros(n,1);
for i=1:n
t = fitrtree(train_input,train_output,'crossval','on',...
'minleaf',leafs(i));
err(i) = kfoldloss(t);
end plot(leafs,err,'o-');
xlabel('min leaf size');
ylabel('cross-validated error');
tic;% **計時開始
tree = fitrtree(train_input,train_output,'minleaf',130);
toc; % **計時結束
view(tree,'mode','graph')
%訓練樣本**
cart_train_output = predict(tree,train_input);
% 訓練資料誤差
train_err = train_output - cart_train_output;
n1 = length(cart_train_output);
train_rmse = sqrt(sum((train_err).^2)/n1);
% 讀取測試集
test_output = s_data(train_num+1:end,n+1:end);
test_input = s_data(train_num+1:end,1:n);
%使用測試樣本進行驗證
cart_test_output = predict(tree,test_input);
% 測試資料誤差
test_err = test_output - cart_test_output;
n2 = length(cart_test_output);
test_rmse = sqrt(sum((test_err).^2)/n2);
% **結果視覺化
figure(4); % 繪製圖1
subplot(2,1,1); % 圖1包含2行1列個子圖形,首先繪製子圖1
plot(cart_test_output,':og'); % 用綠色的o繪製測試資料的**輸出值
hold on;
plot(test_output','-*b'); % 用藍色的*繪製測試資料的期望輸出值
legend('**輸出','期望輸出'); % 子圖1的注釋
title('回歸樹**s含量結果','fontsize',12) %子圖1的標題
ylabel('s含量','fontsize',12); % y軸
xlabel('樣本','fontsize',12); % x軸
subplot(2,1,2); % 繪製子圖2
plot(abs(test_output - cart_test_output),'-*'); % 輸出測試資料的**誤差
title('回歸樹**s含量誤差','fontsize',12) %子圖2的標題
ylabel('誤差','fontsize',12); % y軸
xlabel('樣本','fontsize',12); % x軸
ylim([0,0.01]);
CART分類回歸樹
cart分類回歸樹1984年提出,id3演算法1986年提出,c4.5演算法1993年提出 cart由特徵選擇 樹的生成及剪枝組成。cart假設決策樹是二叉樹,內部結點特徵取值為是和否 cart使用損失函式最小作為剪枝的標準。回歸樹的生成 使用平方誤差最小化準則。對於任意劃分特徵a,對應的任意劃分點...
CART 回歸樹 例項
例如 根據 職業和年齡來 月薪。職業年齡 月薪程式設計師 2220000 程式設計師23 26000 程式設計師29 30000 教師23 12000 教師25 14000 樣本x 1,0,22 1,0,23 1,0,29 0,1,23 0,1,25 注 我們對職業特徵進行了one hot公升維 樣...
CART回歸樹與分類樹
輸出是連續變數的是回歸樹,輸出是離散變數的是分類樹。cart決策樹是乙個二叉樹。輸入空間劃分為m個單元 單元對應輸出 是其對應的輸入空間。輸出取 上所有輸出的均值 下面,看輸入空間的劃分方法。假設最優切分變數 最優切分點 輸入空間被劃分為兩部分 它們的輸出是各自輸入空間中樣本標籤值 的均值和 因此,...