У меня есть два набора 2D-данных x и y, которые представляют собой экспериментальные и теоретические данные соответственно. Каждая строка соответствует образцу (одна физическая конфигурация), а каждый столбец соответствует измерению, выполненному датчиком в одном конкретном месте (объекте).
Эти два набора данных связаны неизвестным отношения, и я пытаюсь выполнить полиномиальную регрессию всего набора данных с помощью sklearn. В моем случае я пытаюсь получить полиномиальные коэффициенты a, b, c для степени = 2 между этими двумя наборами данных:
y = a + b*x + c*(x**2)
Прежде чем пытаться использовать реальный набор данных, я пытаюсь использовать синтетические данные, но мне не удается правильно получить правильные полиномиальные коэффициенты. Я пробовал использовать 1D-массив (1 функция), и он работает хорошо, но я не знаю, почему он не работает со всем 2D-массивом.
Я не знаю. Я знаю, связана ли проблема с методом или с моим сценарием, но буду очень признателен за любую помощь. Ниже представлена моя попытка:
import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import make_pipeline
from sklearn.model_selection import train_test_split
# =============================================================================
# x = 1D ARRAY EXAMPLE
# =============================================================================
pipe = make_pipeline(PolynomialFeatures(2),LinearRegression())
rng = np.random.RandomState(1)
x = 10 * rng.rand(50)
y = 37 + 3*x + 1.5*x**2
# Fit the model
X = x[:, np.newaxis] # Arrange data into a features matrix and target vector.
pipe.fit(X, y)
# Inspect the fit
coef = pipe[1].coef_
print(coef)
# predict
xfit = np.linspace(0, 10, 1000)
Xfit = xfit[:, np.newaxis]
yfit = pipe.predict(Xfit)
# =============================================================================
# x = 2D ARRAY
# =============================================================================
n_subfeatures = 4 # Number of sub-sensors
n_components_per_subf = 3 # Number of components per sub-sensor
n_features = n_subfeatures * n_components_per_subf # Total number of features
n_samples = 100
## GENERATE SYNTHETIC DATA
# Simulated data
np.random.seed(42)
x = np.random.randn(n_samples, n_features)
y = (
0.3
+ 1.7 * x
- 0.5 * x**2
)
# Pipe version
# -------------------------
pipe = make_pipeline(PolynomialFeatures(2),LinearRegression())
# Fit the model
# X = x[:, np.newaxis] # Arrange data into a features matrix and target vector.
X = x
pipe.fit(X, y)
# Inspect the fit
coef = pipe[1].coef_
print(coef)
# Poly / Reg version
# -------------------------
X=x
poly = PolynomialFeatures(degree=2)
poly_features = poly.fit_transform(X)
X_train, X_test, y_train, y_test = train_test_split(poly_features, y, test_size=0.3, random_state=42)
poly_reg_model = LinearRegression()
poly_reg_model.fit(X_train, y_train)
poly_reg_y_predicted = poly_reg_model.predict(X_test)
coef = poly_reg_model.coef_
print(coef)
Подробнее здесь: https://stackoverflow.com/questions/792 ... h-2d-array
Полиномиальная регрессия с двумерным массивом ⇐ Python
Программы на Python
-
Anonymous
1732633020
Anonymous
У меня есть два набора 2D-данных x и y, которые представляют собой экспериментальные и теоретические данные соответственно. Каждая строка соответствует образцу (одна физическая конфигурация), а каждый столбец соответствует измерению, выполненному датчиком в одном конкретном месте (объекте).
Эти два набора данных связаны неизвестным отношения, и я пытаюсь выполнить полиномиальную регрессию всего набора данных с помощью sklearn. В моем случае я пытаюсь получить полиномиальные коэффициенты a, b, c для степени = 2 между этими двумя наборами данных:
y = a + b*x + c*(x**2)
Прежде чем пытаться использовать реальный набор данных, я пытаюсь использовать синтетические данные, но мне не удается правильно получить правильные полиномиальные коэффициенты. Я пробовал использовать 1D-массив (1 функция), и он работает хорошо, но я не знаю, почему он не работает со всем 2D-массивом.
Я не знаю. Я знаю, связана ли проблема с методом или с моим сценарием, но буду очень признателен за любую помощь. Ниже представлена моя попытка:
import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import make_pipeline
from sklearn.model_selection import train_test_split
# =============================================================================
# x = 1D ARRAY EXAMPLE
# =============================================================================
pipe = make_pipeline(PolynomialFeatures(2),LinearRegression())
rng = np.random.RandomState(1)
x = 10 * rng.rand(50)
y = 37 + 3*x + 1.5*x**2
# Fit the model
X = x[:, np.newaxis] # Arrange data into a features matrix and target vector.
pipe.fit(X, y)
# Inspect the fit
coef = pipe[1].coef_
print(coef)
# predict
xfit = np.linspace(0, 10, 1000)
Xfit = xfit[:, np.newaxis]
yfit = pipe.predict(Xfit)
# =============================================================================
# x = 2D ARRAY
# =============================================================================
n_subfeatures = 4 # Number of sub-sensors
n_components_per_subf = 3 # Number of components per sub-sensor
n_features = n_subfeatures * n_components_per_subf # Total number of features
n_samples = 100
## GENERATE SYNTHETIC DATA
# Simulated data
np.random.seed(42)
x = np.random.randn(n_samples, n_features)
y = (
0.3
+ 1.7 * x
- 0.5 * x**2
)
# Pipe version
# -------------------------
pipe = make_pipeline(PolynomialFeatures(2),LinearRegression())
# Fit the model
# X = x[:, np.newaxis] # Arrange data into a features matrix and target vector.
X = x
pipe.fit(X, y)
# Inspect the fit
coef = pipe[1].coef_
print(coef)
# Poly / Reg version
# -------------------------
X=x
poly = PolynomialFeatures(degree=2)
poly_features = poly.fit_transform(X)
X_train, X_test, y_train, y_test = train_test_split(poly_features, y, test_size=0.3, random_state=42)
poly_reg_model = LinearRegression()
poly_reg_model.fit(X_train, y_train)
poly_reg_y_predicted = poly_reg_model.predict(X_test)
coef = poly_reg_model.coef_
print(coef)
Подробнее здесь: [url]https://stackoverflow.com/questions/79227212/polynomial-regression-with-2d-array[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия