我正在做一个支持向量回归,我试图在训练和测试中分割数据集。运行模型时,我收到以下错误:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-46-c24eb12af231> in <module>
20
21 # Identify min and max values for input variables
---> 22 x_min, x_max = X_test_scaled['synth_index'].min(), X_test_scaled['synth_index'].max()
23 y_min, y_max = X_test_scaled['ln_GDP_level'].min(), X_test_scaled['ln_GDP_level'].max()
24
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
我只是尝试用以下方法转换变量:
df['synth_index'].astype(np.int64)
df['ln_GDP_level'].astype(np.int64)
但错误依然存在
我怎样才能解决它?这段代码给了我一个错误(我和前面代码的作者谈过,有一段代码丢失了!)
X=df[['synth_index','ln_GDP_level']]
y=df['median_rating'].values
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42,
test_size=0.30)
scaler = preprocessing.StandardScaler().fit(X_train)
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)
model1 = LinearRegression()
model2 = SVR(kernel='rbf', C=100, epsilon=1)
# Fit the two models
lr = model1.fit(X_test_scaled, y_test)
svr = model2.fit(X_test_scaled, y_test)
# ----------- For creating a prediction plane to be used in the visualization -----------
# Set Increments between points in a meshgrid
mesh_size = 1
# Identify min and max values for input variables
x_min, x_max = X_test_scaled['synth_index'].min(), X_test_scaled['synth_index'].max()
y_min, y_max = X_test_scaled['ln_GDP_level'].min(), X_test_scaled['ln_GDP_level'].max()
# Return evenly spaced values based on a range between min and max
xrange = np.arange(x_min, x_max, mesh_size)
yrange = np.arange(y_min, y_max, mesh_size)
# Create a meshgrid
xx, yy = np.meshgrid(xrange, yrange)
# ----------- Create a prediction plane -----------
# Use models to create a prediction plane --- Linear Regression
pred_LR = model1.predict(np.c_[xx.ravel(), yy.ravel()])
pred_LR = pred_LR.reshape(xx.shape)
# Use models to create a prediction plane --- SVR
pred_svr = model2.predict(np.c_[xx.ravel(), yy.ravel()])
pred_svr = pred_svr.reshape(xx.shape)
已使用以下代码读取数据库(熊猫):
datafile = (r'C:\Users\gpont\PycharmProjects\pythonProject2\data\Map\databaseCDP0.csv')
df = pd.read_csv(datafile, skiprows = 0, sep=';')
df
df['median_rating'] = df['median_rating'].astype(float)
print()
# let's find out the data type after changing
print(df.dtypes)
# print dataframe.
df
数据库:
数据库类型:
scaler.transform的输出是一个numpy数组,在您的例子中,它是一个二维数组,不再是数据帧。因此,不能使用“synth_index”作为键访问“synth_index”列
使用下面的代码来解决您的问题
相关问题 更多 >
编程相关推荐