Почему мой метод линейных наименьших квадратов не соответствует точкам данныхPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему мой метод линейных наименьших квадратов не соответствует точкам данных

Сообщение Anonymous »


У меня с таким кодом получается не очень подогнанная 2D-плоскость:

импортировать numpy как np из scipy import linalg как ла из scipy.linalg импорт решить # данные f1 = np.array([1., 1.5, 3.5, 4.]) f2 = np.array([3., 4., 7., 7.25]) # z = np.array([6., 6.5, 8., 9.]) A= X= np.array([f1, f2]).T b= y= np.array([0,5, 1., 1,5, 2.]).T #################### la.lstsq res= la.lstsq(A,b)[0] печать (рез) ##################### пользовательские lu #кастомные МНК def ord_ls(X, y): А = Х.Т @ Х б = Х.Т @ у бета = решить (A, b, overwrite_a=True, overwrite_b=True, check_finite=Истина) вернуть бета-версию res = ord_ls(X, y) печать (рез) ##################### сюжет # используйте оптимизированные параметры для построения подобранной кривой в трехмерном пространстве. импортировать matplotlib.pyplot как plt из mpl_toolkits.mplot3d импортировать Axes3D # Создайте 3D-график точек данных и подобранной кривой рис = plt.figure() топор = fig.add_subplot(111, проекция='3d') ax.scatter(f1, f2, y, color='blue') x_range = np.linspace(0, 7, 100) y_range = np.linspace(0, 7100) X, Y = np.meshgrid(x_range, y_range) Z = разрешение[0]*X + разрешение[1] ax.plot_surface(X, Y, Z, цвет = 'красный', альфа = 0,5) ax.set_xlabel('feat.1') ax.set_ylabel('feat.2') ax.set_zlabel('цель') plt.show() # [0,2961165 0,09475728] # [0,2961165 0,09475728] хотя коэффициенты кажутся одинаковыми, тем не менее сюжет искажается. Есть ли какое-либо объяснение или исправление? или нужна какая-то регуляризация, например, в методе наименьших квадратов? или две функции коллинеарны, и в этом причина? (Я еще не очень знаком с Линалгом)

пс. scipy-0.18.0 docs, - мысль о LU-факторизации на стр. 184 p, l, u = la.lu(A)
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»