Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 21

ValueError. Линейная регрессия и нахождение среднеквадратичной ошибки на питоне

20.08.2022, 00:28. Показов 740. Ответов 1

Студворк — интернет-сервис помощи студентам
В задаче требуется найти среднеквадратичное отклонение для заданного набора данных. X - хранит в себе признаки, y - ожидаемые ответы. По сути это имитация обучения нейросети с учителем. Массив с признаками стандартизируется, к нему для учёта смещения добавляется вектор-столбец единиц слева, потом находятся веса по формуле, которую можно понять из кода и после этого требуется определить собственно само предсказание, то есть скалярное произведение вектора весов w на вектор признаков X. Здесь и возникает ошибка: ValueError: shapes (9,1) and (10,9) not aligned: 1 (dim 1) != 10 (dim 0). Понимаю, что что-то не так с размерностями, но найти конкретное место не могу. Заранее спасибо за помощь.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import numpy as np
 
X = np.array([[ 8.32520000e+00,  4.10000000e+01,  6.98412698e+00,1.02380952e+00,  3.22000000e+02,  2.55555556e+00,3.78800000e+01, -1.22230000e+02],
       [ 8.30140000e+00,  2.10000000e+01,  6.23813708e+00,9.71880492e-01,  2.40100000e+03,  2.10984183e+00,3.78600000e+01, -1.22220000e+02],
       [ 7.25740000e+00,  5.20000000e+01,  8.28813559e+00,1.07344633e+00,  4.96000000e+02,  2.80225989e+00,3.78500000e+01, -1.22240000e+02],
       [ 5.64310000e+00,  5.20000000e+01,  5.81735160e+00,1.07305936e+00,  5.58000000e+02,  2.54794521e+00,3.78500000e+01, -1.22250000e+02],
       [ 3.84620000e+00,  5.20000000e+01,  6.28185328e+00,1.08108108e+00,  5.65000000e+02,  2.18146718e+00,3.78500000e+01, -1.22250000e+02],
       [ 4.03680000e+00,  5.20000000e+01,  4.76165803e+00,1.10362694e+00,  4.13000000e+02,  2.13989637e+00,3.78500000e+01, -1.22250000e+02],
       [ 3.65910000e+00,  5.20000000e+01,  4.93190661e+00,9.51361868e-01,  1.09400000e+03,  2.12840467e+00,3.78400000e+01, -1.22250000e+02],
       [ 3.12000000e+00,  5.20000000e+01,  4.79752705e+00,1.06182380e+00,  1.15700000e+03,  1.78825348e+00,3.78400000e+01, -1.22250000e+02],
       [ 2.08040000e+00,  4.20000000e+01,  4.29411765e+00,1.11764706e+00,  1.20600000e+03,  2.02689076e+00,3.78400000e+01, -1.22260000e+02],
       [ 3.69120000e+00,  5.20000000e+01,  4.97058824e+00,9.90196078e-01,  1.55100000e+03,  2.17226891e+00,3.78400000e+01, -1.22250000e+02]])
# тут объявлено первые 10 ответов для первых 10 признаковых описаний
y = np.array([4.526, 3.585, 3.521, 3.413, 3.422, 2.697, 2.992, 2.414, 2.267, 2.611])
 
# стандартизация
X =(X-np.mean(X,axis=0))/X.std(axis=0)
# добавление единиц слева для смещения
ones=np.ones(10)
ones=ones[:, np.newaxis]
X = np.c_[ones, X]
 
# веса
w=np.dot(np.dot(np.linalg.inv(np.dot(X.T,X)),X.T),y)
# в строке ниже преобразовала вектор-строку w в вектор-столбец, в надежде, что это поможет исправить ошибку
w=w[:, np.newaxis]
 
# прогнозы
#ошибка в следующей строке
preds = np.dot(w,X)
 
# среднеквадратичная ошибка
error = (1/len(y))*(y-preds)**2
 
print(round(error, 5))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.08.2022, 00:28
Ответы с готовыми решениями:

Линейная парная регрессия. Линейная множественная регрессия
Народ, помогите плиз, очень надо. Ничего в статистике не понимаю. Нужно сделать задания в иксель. Вместо N поставить 4 (т.к. это мой...

Аппроксимация (регрессия) двух вариантов - линейная и линейная общего вида
Ребят привет. Не могу понять почему не работает...

линейная регрессия
Ребят,нужна программа для расчета уравнения линейной регрессии.Если у кого есть поделитесь!В принципе исходники не нужны.нужна именно...

1
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 21
20.08.2022, 11:28  [ТС]
Если кого интересует, уже решила:
Python
1
2
3
4
5
# прогнозы
preds = np.dot(w,X.T)
# среднеквадратичная ошибка
error = (1/len(y))*sum((y-preds)**2)
print(round(error, 5))
Нужно было умножать на транспонированный Х, чтобы выполнилось условие, необходимое для умножения матриц. А так же заметить, что в формуле для error стоит сумма поэлементных разностей в квадрате. Ответ: 0.00982.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.08.2022, 11:28
Помогаю со студенческими работами здесь

Линейная регрессия
Добрый день! Есть линейная регрессия стандартного вида y = 1.5+0.01*X1 Числовые коэффициенты меняются в некоторой зависимости от...

Линейная регрессия
Здравствуйте. Я начал знакомство недавно с методами машинного обучения. С классификацией все более-менее понятно, но с регрессией возникли...

Линейная Регрессия
e=numpy.rand(0,10,1000) x=numpy.linspace(0,1,1000) y=30*numpy.sin(6*numpy.pi*x)+100*numpy.exp(x)+e Это начальные данные задачи. ...

Линейная регрессия
Здравствуйте, вот собственно код. Помогите пожалуйста его реализовать, кого не сильно затруднит может показать в Delphi с исходниками! Мне...

Парная линейная регрессия
Впервые открыла программу STATISTICA 10,пока только начинаю разбираться как в ней работать,а необходимо выполнить следующее задание: 1....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru