python - 执行高斯回归时出错。如何解决?
问题描述
我在 Python 中运行高斯回归。我的数据集的形状为 (10000,5)。但是当我尝试拟合模型时出现错误:
AttributeError: 'list' object has no attribute 'n_dims'
我该如何解决这个问题?
我最初认为这个错误是由于我的因变量的维度可能与自变量不同而引起的。但即使将它们更改为相同的维度,我也无法找到代码的问题。任何帮助都感激不尽。
import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import (RBF, Matern, RationalQuadratic,
ExpSineSquared, DotProduct,
ConstantKernel)
data_set = pd.read_excel(r'XXXXX', sheet = 'Worksheet', header = 0)
data_set.head()
test_set = data_set
y = test_set.iloc[:,4]
test_set.drop(test_set.columns[4], axis = 1, inplace = True)
X = test_set
x=StandardScaler().fit_transform(X)
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=0)
y_train = np.array(y_train)
y_test = np.array(y_test)
y_train = np.reshape(y_train, (7000,1))
y_test = np.reshape(y_test, (3000,1))
kernels = [1.0 * RBF(length_scale=1.0, length_scale_bounds=(1e-1, 10.0))]
gp = GaussianProcessRegressor(kernel=kernels)
gp.fit(X_train, y_train)
File "<ipython-input-23-5a576449fdb6>", line 1, in <module>
gp.fit(X_train, y_train)
File "C:\Program Files\Anaconda\lib\site-packages\sklearn\gaussian_process\gpr.py", line 203, in fit
if self.optimizer is not None and self.kernel_.n_dims > 0:
AttributeError: 'list' object has no attribute 'n_dims'
解决方案
初始化时GaussianProcessRegressor(kernel=kernels)
传递的参数kernel
必须是内核对象。你正在传递一个列表。
此处的文档中的更多信息。
推荐阅读
- python - 如何通过 python API 下载历史 Azure ML 实验运行的输出
- r - 图表条仅在 ggplot 中 y 轴的下限设置为 0 时出现
- git - git 恢复到有冲突的特定提交
- excel - 如何将我的 FILTER() 公式替换为以前版本的 Excel?
- reactjs - 如何将任意字符串 HTML 内容注入 gatsbyjs 网站的头部?
- selenium-ide - 失败:09:42:58 Selenium IDE 中出现 30000 毫秒错误后隐式等待超时
- html - 引导模板适用于 index.html 但不适用于任何反应组件?
- python - 如何在循环中读取 csv 文件
- reactjs - 如何使我的 setValue +1 代码变为 12345 而不是 11111
- php - PHP调用python脚本和按钮在php中单击后消失