La Fonction de coût, de Régression Linéaire, en essayant d'éviter le codage en dur des thêta. Octave.

Je suis dans la deuxième semaine de Professeur Andrew Ng lavable en cours d'Apprentissage par le biais de Coursera. Nous travaillons sur la régression linéaire et maintenant je m'occupe du codage de la fonction de coût.

Le code que j'ai écrit résout le problème correctement, mais ne passe pas le processus de soumission et d'échec de l'unité de test parce que j'ai codé en dur les valeurs de theta et ne permet pas, pour plus de deux valeurs de thêta.

Voici le code que j'ai obtenu jusqu'à présent

function J = computeCost(X, y, theta)

m = length(y);
J = 0;

for i = 1:m,
    h = theta(1) + theta(2) * X(i)
    a = h - y(i);
    b = a^2;
    J = J + b;
    end;
J = J * (1 / (2 * m));

end

l'unité de test est

computeCost( [1 2 3; 1 3 4; 1 4 5; 1 5 6], [7;6;5;4], [0.1;0.2;0.3])

et devrait produire des ans = 7.0175

J'ai donc besoin d'ajouter une autre boucle for pour parcourir thêta, ce qui permet donc à n'importe quel nombre de valeurs de thêta, mais que je sois damné si je peux envelopper ma tête autour de comment/où.

Quelqu'un peut-il suggérer une façon de me permettre pour n'importe quel nombre de valeurs de thêta au sein de cette fonction?

Si vous avez besoin de plus d'informations pour comprendre ce que j'essaie de poser la question, je vais essayer de mon mieux pour fournir.

InformationsquelleAutor Faulty | 2014-03-25