python - pca.fit(X) return Error ValueError: setting an array element with a sequence
问题描述
伙计们..我在一些涉及图像数据减少的项目中。
我想用这个来加载数据。我已经导入了所需的库。
faces = pd.DataFrame([])
for file in os.listdir('dataset/'):
file_name, file_extension = os.path.splitext(file)
if(file_extension in ['.pgm']):
img = cv2.imread('dataset/'+ '/' + file)
face = pd.Series(img.flatten(),name=file)
faces = faces.append(face.fillna(0))
在我填充数据之后,我为训练和测试进行数据拆分。像这样。
X = []
y = []
for nameFolder in os.listdir('dataset/LEFT'):
for file in os.listdir('dataset/LEFT/' + nameFolder):
img = cv2.imread('dataset/LEFT/' + nameFolder + '/' + file )
face = pd.Series(img.flatten(),name=file)
X.append(face)
y.append(nameFolder)
上面的所有代码,仍然可以正常工作。但问题在那之后发生了。我想用于scaler
or PCA
,但它给了我一些错误。
下面的其余部分是关于我如何进行数据拆分、PCA 和缩放器的。
from sklearn.model_selection import train_test_split
X_train, X_test, train_label, test_label = train_test_split( X, y, test_size=0.4, random_state=0)
定标器:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(X_train)
train_img = scaler.transform(X_train)
test_img = scaler.transform(test_img)
主成分分析:
from sklearn.decomposition import PCA
faces_pca = PCA(n_components=2)
faces_pca.fit(X)
components = faces_pca.transform(X)
projected = faces_pca.inverse_transform(components)
以及下面显示的错误,就在我使用.fit() 时:
ValueError: setting an array element with a sequence.
所以现在,我想问。我必须更改数据格式或类型吗?如果是,请告诉我必须是这样,如果可能的话,如何成为那样。接下来如果我的数据没问题,我之前必须做些什么,才能做一些 .fit() 并使用 PCA 或缩放器完成数据。
解决方案
推荐阅读
- python - 如何以“XLSX”excel 格式将我的 Pandas DataFrame 保存到 Azure Data Lake Gen2 帐户?
- debugging - 多次运行后 Intellij 没有在断点处停止
- html - 背景与图案叠加 CSS
- python - 如何进行视频取景?
- python - 使用 Presto jar 加载 pyspark shell 时无法使用 pyspark 的 S3 功能
- python - 如何根据另一个数据框中的列的 value_counts 创建一个新的数据框,但在其他列上具有某些条件?
- python-3.x - 将附件中的图像保存在 couchdb
- c# - .NET 多线程调用 Web 服务
- c++ - 致命错误:在 Mac 中的 VScode 中的 C++ 中找不到“plist/Node.h”文件错误
- php - 如何使用 PHP_EOL?