title: Adaboost Algorithm Walkthrough for non-technical
body: <p>I looked at these questions <a href="https://stackoverflow.com/questions/11825493/about-adaboost-algorithm">here</a> and <a href="https://stackoverflow.com/questions/1922985/explaining-the-adaboost-algorithms-to-non-technical-people">here</a>. But i still couldn't find a satisfactory result for me to understand the algorithm. I understood what it does, and the general idea on how it does it, but still i don't feel comfortable enough to use it in projects. I would like to understand how the algorithm corresponds to the more colloquial description of it. I tried reading several online sources, but most of them keep reproducing the examples of Schapire and Freund without really explaining what is going on. Here is the algorithm given in Schapire's Explaining AdaBoost, p. 2<a href="https://i.stack.imgur.com/lEkaB.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/lEkaB.png" alt="Adaboost Algorithm"></a></p>
  
  <p>Here is what i understand from it so far:<br>
  x1,y2, corresponds to the training set.<br>
  when given x1 we observe the y1 output.    </p>
  
  <p>This x+number is a member of X set.<br>
  And y+number is a member of <code>set {-1,+1}</code> so for the rest of the algorithm
  the training set is <code>(x+number,-1),(x+number,+1), xm, -1 or +1)</code> etc.<br>
  Initialize the distribution, not sure about the sense of distribution here but let's carry on.<br>
  <code>D1(i) = 1/m for i = 1, ..., m</code>.<br>
  I am not sure if there is any relation between the 1 of D1 and the 1 of 1/m, but as far as i understand the i corresponds to the position of the element in the training set.<br>
  I assume t means, something like time or instance, so that we t1 instance and t2 instance, etc.<br>
  By saying Train weak learner using distribution Dt, i assume we want to do something like <code>Dt(i) = t/m</code> ?<br>
  Get weak hypothesis <code>ht: X -&gt; {-1,+1}</code> meaning that ht is so that if it takes an element from X set of inputs then it would give <code>{-1,+1}</code> as output.<br>
  Aim: select ht with low weighted error:<br>
  I don't really get what's going on here. The sign "~" usually corresponds to "not" in logical operators or sometimes used as an equivalent of circa in dates but i assume that is not the case here, does it correspond to something like Probability of i given Dt ?<br>
  The "et" at the beginning is i thought enthropy at first, but i read <a href="https://jeremykun.com/2015/05/18/boosting-census/" rel="nofollow noreferrer">here</a> that it is actually error. The "[" for indicating a matrix? ht(xi) != yi means that the ht produces the wrong output for the input xi, because normally the training set is defined like x1,y1,xm,ym and such.<br>
  For the remainder of the algorithm i have no idea. It would be great if someone can explain the rest in non technical terms. By non technical, i mean by trying to describe what the algorithm does in each step with respect to the previous step. It would be great if you can also give some explanation to why functions like "ln" and "sign" are used to describe what is going on. It would also be great if you can substitute the variables with something that is a little more concrete. </p>
  
  <p>PS: I added the notation in code format because SO insisted that my question contained code before accepting the question</p>