python - sklearn.preprocessing.StandardScaler ValueError: Expected 2D array, got 1D array instead
问题描述
我正在尝试通过http://www.semspirit.com/artificial-intelligence/machine-learning/regression/support-vector-regression/support-vector-regression-in-python/上的教程工作, 但没有 csv包含文件,所以我使用自己的数据。这是到目前为止的代码:
import numpy as np
import pandas as pd
from matplotlib import cm
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from scipy import stats
# Here's where I import my data; there's no csv file included in the tutorial
import quasar_functions as qf
dataset, datasetname, mags = qf.loaddata('sdss12')
S = np.asarray(dataset[mags])
t = np.asarray(dataset['z'])
t.reshape(-1,1)
# Feature scaling
from sklearn.preprocessing import StandardScaler as scale
sc_S = scale()
sc_t = scale()
S2 = sc_S.fit_transform(S)
t2 = sc_t.fit_transform(t)
最后一行抛出错误:
ValueError: Expected 2D array, got 1D array instead:
array=[4.17974 2.06468 5.46959 ... 0.41398 0.3672 1.9235 ].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
是的,我已经t
用这里、这里、这里和这里t.reshape(-1,1)
所示的方式重塑了我的目标数组,但无济于事。我正确地重塑了吗?
解决方案
我猜你有一个数据框,所以你需要重新分配变量t = t.reshape(-1,1)
:
import pandas as pd
dataset = pd.DataFrame(np.random.normal(2,1,(100,4)),columns=['z','x1','x2','x3'])
mags = ['x1','x2','x3']
S = np.asarray(dataset[mags])
t = np.asarray(dataset['z'])
t = t.reshape(-1,1)
from sklearn.preprocessing import StandardScaler as scale
sc_S = scale()
sc_t = scale()
S2 = sc_S.fit_transform(S)
t2 = sc_t.fit_transform(t)
要检查它是否有效:
np.mean(t2)
2.4646951146678477e-16
推荐阅读
- apache-spark - Right way to read stream from Kafka topic using checkpointLocation offsets
- woocommerce - Woocommerce: the shipping method is changed on checkout progress
- python - Is there a better way for mapping string with int
- twitter - how to get twitter summary card with Tweepy
- javascript - 无法更改变量内的值?
- python - SQL查询具有三个日期并尝试标准化年份的表
- android - 在 Flutter 中使用混合元素
- c++ - 字符十进制值
- flutter - 如何将 JSON 响应转换为 Dart Map
目的 ...? - java - 使用 Spring Boot JPA 从现有的 oracle db 获取数据