From 99f1e9fd4b8c8c80fa0ff281f0e082cb810a54e0 Mon Sep 17 00:00:00 2001 From: szcf-weiya Date: Mon, 19 Aug 2019 00:21:24 +0800 Subject: [PATCH] error curves #204 --- code/LDA/diagonalLDA.jl | 88 +++++++++++++++++++++++++++++++++++--- code/LDA/error_curves.png | Bin 0 -> 54613 bytes 2 files changed, 83 insertions(+), 5 deletions(-) create mode 100644 code/LDA/error_curves.png diff --git a/code/LDA/diagonalLDA.jl b/code/LDA/diagonalLDA.jl index ef60c91b0e..6e44ea375e 100644 --- a/code/LDA/diagonalLDA.jl +++ b/code/LDA/diagonalLDA.jl @@ -45,6 +45,8 @@ function RegDiagLDA(X::Array{Float64, 2}, y::Array{Int, 1}, Δ::Float64) s0 = median(s) # typically choice # overall mean x_bar = mean(X, dims = 2)[:] + # count the number of genes + flag_genes = zeros(Bool, p, K) # for each class for k = 1:K # obs in class k @@ -55,11 +57,14 @@ function RegDiagLDA(X::Array{Float64, 2}, y::Array{Int, 1}, Δ::Float64) mk = sqrt( 1 / sum(y.==k) - 1 / N ) dk = ( xk_bar - x_bar ) ./ (mk * (s .+ s0)) dk_prime = soft_threshold(dk, Δ) + flag_genes[:, k] .= dk_prime .!= 0 xk_bar_prime = x_bar + mk*(s .+ s0) .* dk_prime # discriminant function push!(δ, x-> -sum( ( (x-xk_bar_prime)./s ).^2 ) ) # equal π_k end - return δ + # number of genes + num_genes = sum(any(flag_genes, dims = 2)) + return δ, num_genes end function soft_threshold(x::Float64, Δ::Float64) @@ -86,17 +91,52 @@ function classify(x::Array{Float64, 2}, δ::Array{Function, 1}) return res end +# misclassification error +function calc_err(pred::Array{Int, 1}, truth::Array{Int, 1}) + return sum(pred .!= truth) / length(pred) +end + +# cross validation +function cv_err(X::Array{Float64, 2}, y::Array{Int, 1}, Δ; nfold = 10) + N = size(X, 2) + folds = div_into_folds(N, K = nfold) + err = zeros(nfold) + for k = 1:nfold + test_idx = folds[k] + train_idx = setdiff(1:N, test_idx) + δ, ng = RegDiagLDA(X[:, train_idx], y[train_idx], Δ) + err[k] = calc_err(classify(X[:, test_idx], δ), y[test_idx]) * length(test_idx) + end + return sum(err) / N +end + +# 1:N divide into K-fold +function div_into_folds(N::Int; K::Int = 10) + # maximum quota per fold + n = Int(ceil(N/K)) + # number folds for the maximum quota + k = N - (n-1)*K + # number fols for n-1 quota: K-k + folds = Array{Array{Int, 1}, 1}(undef, K) + for i = 1:k + folds[i] = collect(n*(i-1)+1:n*i) + end + for i = 1:K-k + folds[k+i] = collect((n-1)*(i-1)+1:(n-1)*i) .+ n*k + end + return folds +end # read data path = "data\\SRBCT\\" # windows style xtrain = readdlm(path*"khan.xtrain.txt") -ytrain = readdlm(path*"khan.ytrain.txt", Int) +ytrain = vec(readdlm(path*"khan.ytrain.txt", Int)) xtest = readdlm(path*"khan.xtest.txt") ytest = readdlm(path*"khan.ytest.txt") # remove NA obs idx_nonNA = ytest .!= "NA" -ytest = ytest[idx_nonNA] +ytest = convert(Array{Int, 1}, ytest[idx_nonNA]) xtest = xtest[:, vec(idx_nonNA)] # run @@ -114,7 +154,7 @@ freqtable(cltest, ytest[1,:]) # RegDiagLDA -δ2 = RegDiagLDA(xtrain, ytrain[:], 2.0) +δ2, ng = RegDiagLDA(xtrain, ytrain[:], 2.0) cl2 = classify(xtrain, δ2) cltest2 = classify(xtest, δ2) freqtable(cl2, ytrain[:]) @@ -124,5 +164,43 @@ freqtable(cl2, ytrain[:]) - freqtable(cltest2, ytest[:]) +# misclassification error +calc_err(cltest2, ytest[:]) + +# Error curves (fig 18.4 top) +Δs = 0:0.2:8 +errs = zeros(length(Δs), 3) # traing, 10-fold, test +ngs = zeros(Int, length(Δs)) +for i = 1:length(Δs) + δ, ngs[i] = RegDiagLDA(xtrain, ytrain, Δs[i]) + # train error + errs[i, 1] = calc_err(classify(xtrain, δ), ytrain) + # cv10 + errs[i, 2] = cv_err(xtrain, ytrain, Δs[i]) + # test errror + errs[i, 3] = calc_err(classify(xtest, δ), ytest) +end + +using Plots +plot(Δs, errs[:, 1], label="Training", color = "green", legend=:topleft) +scatter!(Δs, errs[:, 1], color = "green", label="") +plot!(Δs, errs[:, 2], label="10-fold CV", color = "orange") +scatter!(Δs, errs[:, 2], color = "orange", label="") +plot!(Δs, errs[:, 3], label="Test", color = "blue") +scatter!(Δs, errs[:, 3], color = "blue", label="") + +using PyPlot +fig, ax1 = plt.subplots(figsize=(12, 8)) +ax1.plot(Δs, errs[:,1], label="Training", color="green", marker="o") +ax1.plot(Δs, errs[:,2], label="10-fold CV", color = "orange", marker = "o") +ax1.plot(Δs, errs[:,3], label="Test", color = "blue", marker = "o") +ax1.legend(loc = "upper left") +ax1.set_xlabel("Amount of Shrinkage Δ") +ax1.set_ylabel("Misclassification Error") +ax2 = ax1.twiny() +ax2.set_xticks(Δs[1:5:end]) +ax2.set_xticklabels(ngs[1:5:end]) +ax2.set_xlabel("Number of Genes") +plt.savefig("error_curves.png") +plt.show() diff --git a/code/LDA/error_curves.png b/code/LDA/error_curves.png new file mode 100644 index 0000000000000000000000000000000000000000..8f04816170c056ab67ea3d09f13e48fabf106ae9 GIT binary patch literal 54613 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 z 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 literal 0 HcmV?d00001