7 ms·
Logistic regression from scratch
- IdiocyInAction 6y agoMy understanding of Logistic Regression is that it's linear regression on the log-odds, which are then converted to probabilities with the sigmoid/softmax function. This formulation allows one to do direct linear regression on the probabilities, without the unpleasant side effects of just using a linear model as-is. A mathematical justification for doing this is given by the generalized linear model formulation.
- obastani 6y agoThis is not quite correct. The log probabilities are log p(y=1 | x; beta) = beta * x - log Z(x; beta) where Z(x) = p(y=0 | x; beta) + p(y=1 | x; beta) Thus, you can think of it as linear regression, but with an additional term log Z(x; beta) in the log likelihood.
- tomrod 6y agoFrom what I recall this is a bit off -- not a bad mental model but the math plays out different. Linear regression has a closed form solution of X projected onto Y: \hat{\beta} = (X'X)^{-1} X' Y It is equivalent to the Maximum Likelihood Estimator (MLE) for linear regression. However, for logistic regression, MLE would estimate different from MLE for the log odds output. Linear regression on {class_inclusion} = XB gives the linear probability model, which has limited utility. The required transform is covered by another commenter.
- IdiocyInAction 6y agoYou're right, my model was a bit off. Thanks for pointing that out, I forgot about the fact.
- nerdponx 6y agoIt's better to think of linear regression and logistic regression as special cases of the Generalized Linear Model (GLM). In that framework, they are literally the same model with different "settings" - Gaussian vs Bernoulli distribution.
- markkvdb 6y agoI have to disagree with you. While assuming Gaussian disturbance terms results in a linear regression, the linear regression framework is more general. It makes no assumptions about the distribution of the disturbance terms. Instead, it merely restricts the variance to be constant over all values of the response variable.
- nerdponx 6y agoBoth things can be true. Linear regression is extra-special because it's a special case of several different frameworks and model classes. I should have written that it's better (in my opinion) to think of logistic regression in the context of GLMs, at least while you're learning. Edit: yes logistic regression is a special case of regression with a different loss function. But it's not nearly "as special" as linear regression.
- zwaps 6y agoAs above, I would strongly agree with you. Both linear and logistic regression can be special cases of frameworks that are more general and far less parametric than GLM. But they also have very intuitive or hands-on explanations, especially logistic regression, which GLM doesn't have.
- zwaps 6y agoWell, then I am gonna say it's even better to think of linear and logistic regression as special case of M Estimators or GMM. Joke aside, the truth is that logistic regression can be understood based on several assumptions. Above we have the latent variable explanation. Then there is a Bayesian version. There's even a "random utlity" formulation, where one models explicitly choices of an agent with a probabilistic error. That one is good to explain hierarchical logit models and many of the "issues" with logit such as IAA. GLM on the other hand I don't feel like it adds much except parameterizing the procedure, which ain't even a good thing. Nowadays we appreciate the semi parametric nature of regression a lot, which is why GLM has declined in use.
- delib 6y ago> it's linear regression on the log-odds Almost - logistic regression assumes that the function is linear in the log odds, i.e. log(p/(1-p)) = Xb + e. The problem is that you can't compute the log-odds, because you don't know p.
- deleted 6y ago[deleted]
- j7ake 6y agoPutting logistic and linear regression into the generalised linear model framework is the right way to think of it and compare them. From this point of view linear regression would be using GLM with identity link function, logistic regression uses the logit function as the link function.
- random314 6y agoLinear regression uses MSE loss. Logistic regression uses log-loss. Both loss functions behave differently. Its not just the underlying model, but the loss function is also different.
- crdrost 6y agoThere is a different mathematical justification as well in terms of Bayesian reasoning. The claim is that “evidence” in Bayesian reasoning naturally acts upon the log-odds, mapping prior log-odds to posterior log-odds additively. To see this, calculate from the definition, Odds(X | E) := Pr(X | E) / Pr(¬X | E) = Pr(X ∧ E) / Pr(¬X ∧ E) = (Pr(E | X) × Pr(X)) / (Pr(E | ¬X) × Pr(¬X)) = LR(E, X) × Odds(X), Where LR is the usual likelihood ratio. So when we take the logarithm of both sides, we find that new evidence adds some quantity—the log of the likelihood ratio of the evidence—to our log of prior probability, in this phrasing of Bayes’ theorem. I sometimes tell people this in a slightly strange language, I say that if we ran into aliens we might find out that they don't believe the things are absolutely true or false, but instead measure their truth or falsity in decibels. So another perspective on what logistic regression is trying to do, is that it is trying to assume linear log-likelihood-ratio dependence based on the strength of some independent pieces of evidence. You can weakly justify this in all cases, using calculus and assuming everything has a small impact. You can further justify it strongly for any signal where twice as large of a measured regression variable ultimately implies twice as many independent events at a much lower level happening and independently providing their evidences for the regression outcome. So like, I come from a physics background, I am thinking in this case of photon counts in a photomultiplier tube or so: I know that at a lower level, each photon is contributing equally some small little bit of evidence for something, so when I count all the time up together, this is the appropriate framework to use.
- thomasahle 6y agoLogistic regression can learn some quite amazing things. I trained a linear function to play chess: https://github.com/thomasahle/fastchess https://github.com/thomasahle/fastchess and it manages to predict the next moves of top engine games with 27% accuracy. A benefit of logistic regression is that the resulting model really fast. Furthermore, it's linear, so you can do incremental updates to your prediction. If you have `n` classes and `b` input features change, you can recompute in `bn` time, rather than doing a full matrix multiplication, which can be a huge time saver.
- mhh__ 6y agoIsn't 27% worse than flipping a coin?
- gpderetta 6y agoOnly if you have only two legal moves.
- enchiridion 6y agoNo, uniform random would be bounded by 1/16. However you cannot move ever piece in every configuration, so it's greater than that. Actually would be an interesting problem for figure out...
- adiM 6y agoThere are only 16 pieces, but in most board positions, many pieces can make more than one legal move.
- thomasahle 6y agoA typical chess position has 20-40 legal moves. The complete space of moves for the model to predict from has about 1800 moves. For comparison Leela Zero gets around 60% accuracy on predicting its own next move. With this sort of accuracy you can reduce the search part of the algorithm to an effective branching factor of 2-4 rather than 40, nearly for free, which is a pretty big win.
- clircle 6y agoAh, the old "regression from scratch" post that is mandatory for all blogs
- melling 6y agoIt looks like he’s working through a lot of algorithms: https://github.com/pmuens/lab https://github.com/pmuens/lab
- oli5679 6y agoWeight of evidence binning can be helpful feature engineering strategy for logistic regression. Often this is a good 'first cut' model for a binary classifier on tabular data. If feature interactions don't have a major impact on your target then this can actually be a tough benchmark to beat. https://github.com/oli5679/WeightOfEvidenceDemo https://github.com/oli5679/WeightOfEvidenceDemo https://www.listendata.com/2015/03/weight-of-evidence-woe-and-information.html?m=1 https://www.listendata.com/2015/03/weight-of-evidence-woe-an...
- colinmhayes 6y agoHow do we differentiate between econometrics and machine learning? Logistic regression seems like it fits into econometrics better than machine learning to me. There's no regularization. I guess there's gradient descent which can be seen as more machine learning. In the end it's semantics of course, still an interesting distinction.
- random314 6y agoLogistic regression can use both L1 and L2 regularization
- colinmhayes 6y agoAnd ols can too. That doesn't make it machine learning. This implementation doesn't involve any regularization.
- random314 6y agoI am not really sure why you are trying to redefine the term machine learning with random references to regularization. OLS is taught in every machine learning course. The machine learns parameters via gradient descent for a wide variety of loss functions.
- alexilliamson 6y agoFrom my experience, econometricians and ML practitioners mostly pretend like the other group doesn't exist.
- TrackerFF 6y agoWell, what do you define as machine learning? Logistic regression is clearly a classifier. And you need data to train it. So it's a supervised learning algorithm.
- colinmhayes 6y agoI'm trying to have a conversation so I can figure it out. Pretty confident that being a classifier does not make it machine learning, econometrics has classifiers too. Econometric models also need data to train them, so I'm not sure your second point is helpful either. Unless you're claiming the difference is nothing but whether the model is used by an economist.
- curiousgal 6y agoVery interesting seeing people in the comments debate what is a very basic thing taught in any stats/econometrics class. The idea behind binary regression ( Y is 0 or 1) is that you use a latent variable Y* = beta X + epsilon. X is the matrix of indenpent variables, beta is the vector of coefficients and epsilon is an error term that sums the rest of what X can't explain. Y thus becomes 1 if Y* >0 and 0 otherwise. Seeing how Y is binary, we can model it using a Bernoulli distribution with a success probability P(Y=1) = P(Y* >0) = 1 - P(Y* <=0) = 1 - P(epsilon <= -beta X) = 1 - CDF_epsilon(-beta X) Technically you can use any function that maps R to [0, 1] as a CDF. If its density is symmetrical then you can directly write the above probability as CDF(beta X). The two usual choices are either the normal CDF which gives the Probit model or the Logistic function (Sigmoid) which gives the Logit model. With the CDF known you can calculate the likelihood and use it to estimate the coefficients. People prefer the Logit model because the coefficients of the model are interpretable in terms of log-odds and all and the fucntion has some nice numerical properties. That's all there is to it really.
- platz 6y agofyi, generally when explaining things to non-practitioners, it's a detractor to add qualifiers like - this is a very basic thing - that's all there is to it because although it is a basic thing to you, it's not a basic thing to someone who hasn't spent the same time studying all the concepts beforehand. This is generally why you have to take a class to grok stats rather than just read some reference material and definitions. It's similar to programming environments when the senior dev says some thing that requires a lot of context is just really simple. Monads are Simply Just monoids in the category of endofunctors, after all, they are really Simple, that's all there is to it! (what the subject hears: This is so simple to me, why aren't you smart enough to get this simple concept? You should know this already—I shouldn't even have to make this comment! Why haven't you been properly educated, like I have? )
- curiousgal 6y agoI totally agree but I was explaining that to practionners, or at least people who consider themselves data scientists. I agree that it is by no means a beginner friendly explanation.
- deleted 6y ago[deleted]