ENTROPIE VON SHANNON
bin ziemlich neu in R und auch im Forum, daher mal Servus an alle Mitglieder
Ich hab ein Code welches ich zu verstehen , versuche.... Leider nicht mit sehr viel Erfolg.
Ich versuch das Code in R in Python zu übersetzen.
Code: Alles auswählen
#Integrationsgewichte
me.G5 = read.csv('xxxx.csv',sep=';',header=FALSE)[,2:3]
me.x = me.G5[,1]
me.w = me.G5[,2]
int.x = c((me.x/2+.5)*0.1,0.1+(me.x/2+.5)*0.9,1+(me.x/2+.5)*9,10+(me.x/2+.5)*90,100+(me.x/2+.5)*900)
int.w = c(me.w*0.1/2,me.w*.9/2,me.w*9/2,me.w*90/2,me.w*900/2)
# Entropie nach Shannon
### pdf
me.pdf= function(MF,l) {
pdf = function(x){
X= matrix(NaN,length(x),length(l))
for(i in 1:length(l)) X[,i] = MF[[i]](x)
exp(l%*%t(X))
}
pdf
}
### l
me.l = function(MF,mt,sv=NA,tol=1e-10) {
V = mt[2:length(mt)]
if(is.na(sv[1])) l = rep(0,length(V)) else l = sv[-1]
X = matrix(NaN,length(int.x),length(l))
for(i in 2:length(MF)) X[,i-1]= MF[[i]](int.x)
run = 0;sig = 1
while((max(abs(sig))>tol)&(run<40)) {
m1= as.vector(exp(l%*%t(X))*int.w)
g= m1%*%t(t(X)-V)
G= (t(X)-V)%*%(m1*t(t(X)-V))
sig= solve(G,-t(g))
l= l + sig
l= as.vector(l)
run = run +1
}
m1= as.vector(exp(l%*%t(X))*int.w)
l0= -log(sum(m1))
c(l0,l)
}
für Integrationsgewichte:
1: lies Datei ein und schon bei me.G5 weiss ich nicht so reicht was me. bedeuten soll
pdf:
zu pdf dachte ich immer dass es die Speicherung auf PDF wäre, aber anscheinend doch nicht ,oder ?
X= matrix(NaN,..) -> initialisiere die Matrix ABER WIESO MIT NaN ????
for(i in 1:....) -> mit der Zeile kann ich kaum was anfangen (PEINLICH)
l:
da hört es komplett auf , ich weiß ungefähr dass die while-Schleife einen Gradientenabstieg beinhaltet
Bevor ich überhaupt die Frage stelle , habe ich schon mir einiges angeschaut und auch einzelne Schritte auch grob verstanden , leider fehlt mir das Verständnis vom ganzen um es in Python Umsätzen zu können
Ich hoffe auf konstruktive Hilfe