Cómo escribir un programa que posicionará una línea recta con superposición máxima con un conjunto de puntos en el espacio 3D

Una línea recta en 3D se describe mediante la ecuación z = a * x + b * y + c. Por lo tanto, tiene 3 parámetros (a, b, c) para determinar y obtener la mejor línea de ajuste.

Para encontrar el mejor ajuste, desea minimizar el error al cuadrado: E = (z_i-z) ^ 2, donde z_i son sus puntos de datos y z es la predicción de su modelo para un conjunto dado (a, b, c). Entonces comienza con una conjetura inicial en (a, b, c) y actualiza sus parámetros para moverse en la dirección del error decreciente (algoritmo simple de descenso de gradiente)

Entonces,
a_i + 1 = a_i -r * dE / da

y de manera similar para byc, donde a_i es su estimación actual y a_i + 1 es la siguiente aproximación, y r es la tasa de aprendizaje que debe ajustarse a un valor apropiado para optimizar la minimización (intente ~ 0.1 para comenzar).

Este es un simple problema de regresión lineal. Espero que ayude

Regresión lineal