线性判别分析的拟合或预测函数



我正试图使用SciKit Learning Linear Discriminative Analysis包,根据已知坐标为标签分配坐标。训练坐标和标签存储在一个panda数据帧中,目标坐标存储在另一个pandas数据帧中。两个数据帧的行长度不相等,训练集较大。我想在原始数据帧中的坐标上应用标签,用作pd.merge.的密钥

我知道我可以使用多边形或Shapely中的matplot点来解决这个问题,但我想用这种方式来测试它。以下是我基于文档的内容

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
labels_fea = le.fit_transform(Spatial_index['Postcode']) 
trainingdata=df1[['xcoord','ycoord']].values
targetvalues=df2[['xcoord','ycoord']].values
clf = LinearDiscriminantAnalysis(solver='svd', shrinkage=None, priors=None,      
n_components=None, store_covariance=False, tol=0.0001)

然后执行如下,

clf.fit(trainingdata,targetvalues) 

这会引发以下错误,

ValueError: bad input shape (8860, 2)

我认为您被目标和测试弄糊涂了。之所以出现错误,是因为分类器需要一个一维的标签数组——在您的情况下,是邮政编码。如果没有看到你的数据,我不能肯定,但你可能想做

clf.fit(trainingdata, labels_fea) 

然后将targetdata重命名为testdata,您可以使用clf.predict(testdata) 测试您的模型

相关内容

  • 没有找到相关文章

最新更新