Pts = {{3,5,7},{1,-5,0},{2,2,2},{4,4,2},{0,0,0},{3,6,9},{7,7,7},{-3,1,4},{4,2,6},{7,3,5},{10,3,-20}};

PointsPlot = ListPointPlot3D[Pts, PlotRange->{{-20,20},{-20,20},{-20,20}}]

b = Transpose[{{0,0,0,0,0,0,0,0,0,0,0}}]

(A = Table[{Pts[[i,1]],Pts[[i,2]],Pts[[i,3]],1},{i,1,11}])//MatrixForm

pseudaInv[A_]:=Inverse[Transpose[A].A].Transpose[A];

N[pseudaInv[A]]//MatrixForm

N[pseudaInv[A]].b//MatrixForm

(b = Drop[Pts,{},{1,2}])//MatrixForm

(A = Table[{Pts[[i,1]],Pts[[i,2]],1},{i,1,11}])//MatrixForm

N[pseudaInv[A]].b//MatrixForm

PlanePlot = Plot3D[-1.52658*x+1.41392*y+3.67455,{x,-20,20},{y,-20,20},Mesh->None, PlotStyle->Purple]

Show[PlanePlot,PointsPlot]