How to find the initial hyperplane in a Support Vector Machine (SVM)?
Not sure how this is done in the any specific library, but here is what I would try.
Given two sets of points ($K$ points in the first set and $S$ in the second set): $\{\mathbf{a}_i\}_{i=1\dots K}$ and $\{\mathbf{b}_i\}_{i=1\dots S}$, all in $N$-dimensional space ($\mathbb{R}^N$)
I would compute the 'centres of mass' of the two sets:
$$
\begin{align}
\mathbf{A}=&amp;\frac{1}{K}\sum_{i=1}^K \mathbf{a}_i \\
\mathbf{B}=&amp;\frac{1}{S}\sum_{i=1}^S \mathbf{b}_i
\end{align}
$$
I would then use the mid-point between the two centres of mass,
$$\mathbf{M}=\left(\mathbf{A}+\mathbf{B}\right)/2$$
as the point for the hyper-plane.
Then I would use the vector connecting the two centres of mass,
$$\mathbf{C}=\mathbf{A}-\mathbf{B}$$
as the normal for the hyper-plane. Lets define
$$
\mathbf{\hat{n}}=\frac{\mathbf{C}}{\sqrt{\mathbf{C}.\mathbf{C}}}
$$
A single point and a normal vector, in $N$-dimensional space, will uniquely define an $N-1$ dimensional hyper-plane. To actually do it you will need to find a set of vectors
$$
\{\mathbf{v}_j\}_{j=1\dots N-1},\quad \mathbf{v}_j.\mathbf{\hat{n}}=0\,\mbox{for all } j
$$
This set can be created by Gram-Schmidt type process, starting from your trivial basis and then ensuring that every new vector is orthogonal to all vectors in the set and to $\mathbf{\hat{n}}$.
Once you did that, any point on the hyper-plane will be uniquely described by $N-1$ coordinates $\alpha_{i=1\dots N-1}$, and will correspond to the following point in the original $N$-dimensional space
$$
\mathbf{q}=\sum_{j=1}^{N-1} \alpha_j\mathbf{v}_j+\mathbf{M}
$$