I am trying to use Logistic Regression to make a spam filter, but I am having trouble understanding the weight update part. I have processed my email dataset, and I have an attribute vector of the top n words that are most likely to be contained within a spam.

From my understanding, during training, I will have to implement an optimization formula after each training example in order to update the weights.

$$ w_l \leftarrow w_l + \eta \cdot \sum_{i=1}^m [ y^{(i)} - P(c_+ \mid \vec{x}^{(i)} )] \cdot x_l^{(i)} $$

How does a formula such as this work? How can it be implemented in Python?


1 Answer 1


I think i found out how that works, so i made a short article about it . https://medium.com/@kourloskostas/python-spam-filter-86b21d7d1564 I hope it helps!

  • 2
    $\begingroup$ You are right ,will post the answer here as well $\endgroup$
    – kostas
    Apr 14, 2020 at 9:50
  • $\begingroup$ Actually, if you could excerpt the most salient passages from the medium article, that would really help with this answer, specifically. (Welcome to SE:AI btw--glad to have you here!) $\endgroup$
    – DukeZhou
    Apr 14, 2020 at 22:22
  • $\begingroup$ Thanks ! I will do my best to clear the article up! $\endgroup$
    – kostas
    Apr 15, 2020 at 0:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .