在图上绘制多维数据

时间:2018-07-12 10:45:28

标签: python scikit-learn pca

我有一个数据,该数据包含1700行,每行包含9个房屋特征,以及一个数组,其中包含与那些特征相对应的价格。我已在此数据上建立了线性回归模型,但我想对其进行可视化。我可以使用PCA以某种方式将这9个功能转换为单个功能吗?我已经尝试过了,但仍然收到错误消息,说x,y的大小必须相同。

from sklearn.model_selection import train_test_split
from sklearn import linear_model
from sklearn.decomposition import PCA

clf = linear_model.LinearRegression()
pca = PCA(n_components = 9)
# features contains 1700 rows of 9 feature data, y contains 1700 price values
x_train, x_test, y_train, y_test = train_test_split(features, y)
pca.fit(x_train)
x_train = pca.transform(x_train)
x_test = pca.transform(x_test)
clf.fit(x_train, y_train)
pred = clf.predict(x_test)
plt.scatter(x_train, y_train)
plt.show()

在plt.scatter()函数上发生错误,feature.shape =(17000,9),y.shape =(17000,1)

1 个答案:

答案 0 :(得分:1)

您得到的错误是由于plt.scatter的输入形状不相等所致。 x_train是具有17000行和9列的数组。而y_train是17000行和一列的数组。

您可以通过索引x_train并仅从其中选择一个列来解决该错误。

x_train[:,0]选择x_train的第一列。

另一种方法是将n_components设置为1。n_components确定pca返回多少个特征。将其设置为1将返回1,将其设置为9将返回9。