我有一个数据,该数据包含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)
答案 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。