summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2012-10-12 10:27:15 +0200
committermguetlein <martin.guetlein@gmail.com>2012-10-12 10:27:15 +0200
commitba9d3e628e424a84d8c892c4fdf49c2258a95352 (patch)
tree4dbbf4269e6e3dc1dd94024921255a506a5fa921 /lib
parentcd8800cf377b5b8c07dc25f3629e503f01bc9112 (diff)
add contra splitting, provide access to dataset-splits, minor stuff
Diffstat (limited to 'lib')
-rwxr-xr-xlib/predictions.rb135
1 files changed, 79 insertions, 56 deletions
diff --git a/lib/predictions.rb b/lib/predictions.rb
index 63578fd..4708630 100755
--- a/lib/predictions.rb
+++ b/lib/predictions.rb
@@ -1,4 +1,6 @@
+require "rubygems"
+
require "lib/prediction_data.rb"
require "statsample"
@@ -813,66 +815,87 @@ module Lib
require "rubygems"
require "opentox-ruby"
- max_deviation = rand * 0.9
- avg_deviation = max_deviation * 0.5
-
- p = []
- a = []
- c = []
- (100 + rand(1000)).times do |i|
- r = rand
- deviation = rand * max_deviation
- a << r
- p << r + ((rand<0.5 ? -1 : 1) * deviation)
- #c << 0.5
- if (deviation > avg_deviation)
- c << 0.4
- else
- c << 0.6
- end
- #puts a[-1].to_s+" "+p[-1].to_s
- end
- puts "num values "+p.size.to_s
+ max_deviation = rand * 0.5
- #a = [1.0,2.0, 3.0,4.0, 5.0]
- #p = [1.5,2.25,3.0,3.75,4.5]
+ weired_index = 0
- #a = [1.0,2.0,3.0,4.0,5.0]
- #p = [1.5,2.5,3.5,4.5,5.5]
-
- #p = a.collect{|v| v-0.5}
- #p = a.collect{|v| v+0.5}
+ 10.times do
- #p = [2.0,2.5,3.0,3.5,4.0]
-
- c = Array.new(p.size,nil)
+ p = []
+ a = []
+ 500.times do |i|
+ r = rand
+ deviation = rand * max_deviation
+ a << r
+ p << r + ((rand<0.5 ? -1 : 1) * deviation)
+ end
+ puts "num values "+p.size.to_s
+ c = Array.new(p.size,nil)
+ data = { :predicted_values => p, :actual_values => a, :confidence_values => c,
+ :feature_type => "regression", :accept_values => nil }
+ pred = Predictions.new(data)
+ puts "ccc "+"%.3f" % pred.concordance_correlation_coefficient.to_s
+ puts "rmse "+"%.3f" % pred.root_mean_squared_error.to_s
+ ccc_1 = pred.concordance_correlation_coefficient
+ rmse_1 = pred.root_mean_squared_error
+
+ p = []
+ a = []
+ 2500.times do |i|
+ r = rand
+ deviation = rand * max_deviation
+ a << r
+ p << r + ((rand<0.5 ? -1 : 1) * deviation)
+ end
+ puts "num values "+p.size.to_s
+ c = Array.new(p.size,nil)
+ data = { :predicted_values => p, :actual_values => a, :confidence_values => c,
+ :feature_type => "regression", :accept_values => nil }
+ pred = Predictions.new(data)
+ puts "ccc "+"%.3f" % pred.concordance_correlation_coefficient.to_s
+ puts "rmse "+"%.3f" % pred.root_mean_squared_error.to_s
+ ccc_2 = pred.concordance_correlation_coefficient
+ rmse_2 = pred.root_mean_squared_error
+
+ ccc_d = ccc_1 - ccc_2
+ rmse_d = rmse_1 - rmse_2
+
+ dev = 0.0005
+
+ puts "ccc-d "+"%.3f" % ccc_d
+ puts "rmse-d "+"%.3f" % rmse_d
+
+ if ccc_d.abs>dev or rmse_d.abs>dev
+
+ if ((ccc_d>0 and rmse_d<0) or (ccc_d<0 and rmse_d>0)) #ccc_d.abs>dev and rmse_d.abs>dev and
+ puts "weired"
+ weired_index += 1
+ else
+ puts "not weired"
+ weired_index -= 1
+ end
+ puts weired_index
+ else
+ #puts "only small"
+ end
+
+ end
- data = { :predicted_values => p, :actual_values => a, :confidence_values => c,
- :feature_type => "regression", :accept_values => nil }
-
- pred = Predictions.new(data)
- puts "internal"
- #puts "r-square old "+pred.r_square_old.to_s
- puts "cor "+pred.sample_correlation_coefficient.to_s
- #puts "weighted cor "+pred.weighted_sample_correlation_coefficient.to_s
- puts "r-square "+pred.r_square.to_s
- puts "ccc "+pred.concordance_correlation_coefficient.to_s
-
- puts "R"
- rutil = OpenTox::RUtil.new
-
- rutil.r.assign "v1",a
- rutil.r.assign "v2",p
- puts "r cor "+rutil.r.pull("cor(v1,v2)").to_s
- rutil.r.eval "fit <- lm(v1 ~ v2)"
- rutil.r.eval "sum <- summary(fit)"
- puts "r r-square "+rutil.r.pull("sum$r.squared").to_s
- puts "r adjusted-r-square "+rutil.r.pull("sum$adj.r.squared").to_s
- rutil.r.eval "save.image(\"/tmp/image.R\")"
- #rutil.r.eval "require(epiR)"
- #rutil.r.eval "tmp.ccc <- epi.ccc(v1,v2)"
- #puts "r ccc "+rutil.r.pull("tmp.ccc$rho.c$est").to_s
- rutil.quit_r
+# puts "R"
+# rutil = OpenTox::RUtil.new
+#
+# rutil.r.assign "v1",a
+# rutil.r.assign "v2",p
+# puts "r cor "+rutil.r.pull("cor(v1,v2)").to_s
+# rutil.r.eval "fit <- lm(v1 ~ v2)"
+# rutil.r.eval "sum <- summary(fit)"
+# puts "r r-square "+rutil.r.pull("sum$r.squared").to_s
+# puts "r adjusted-r-square "+rutil.r.pull("sum$adj.r.squared").to_s
+# rutil.r.eval "save.image(\"/tmp/image.R\")"
+# #rutil.r.eval "require(epiR)"
+# #rutil.r.eval "tmp.ccc <- epi.ccc(v1,v2)"
+# #puts "r ccc "+rutil.r.pull("tmp.ccc$rho.c$est").to_s
+# rutil.quit_r
end
def prediction_feature_value_map(proc)