【发布时间】:2017-10-09 15:54:15
【问题描述】:
政治学研究生,他的头脑很过分(雄心勃勃,但正如他们所说的那样垃圾)。基本上,为了政治科学的目的,我试图对一组政治家进行吸引力预测。我关注了这个guide。
在提取了地标和生成特征后,我使用我的学习集(CFD,400 张带有评分的图像)作为模型预测评分,通过交叉验证将 0.49(对我的目的来说足够好)与实际评分相关。这是代码:
import numpy as np
from sklearn import decomposition
from sklearn import linear_model
features = np.loadtxt('C:\\Users\\bruker\\Desktop\\Data\\CFD_features.txt', delimiter=',')
ratings = np.loadtxt('C:\\Users\\bruker\\Desktop\\Data\\CFD_ratings.txt', delimiter=',')
predictions = np.zeros(ratings.size);
for i in range(0, 400):
features_train = np.delete(features, i, 0)
features_test = features[i, :]
ratings_train = np.delete(ratings, i, 0)
ratings_test = ratings[i]
pca = decomposition.PCA(n_components=13)
pca.fit(features_train)
features_train = pca.transform(features_train)
features_test = pca.transform(features_test)
regr = linear_model.LinearRegression()
regr.fit(features_train, ratings_train)
predictions[i] = regr.predict(features_test)
print 'number of models trained:', i+1
np.savetxt('C:\\Users\\bruker\\Desktop\\Data\\CFDN_cross_valid_predictions.txt', predictions, delimiter=',', fmt = '%.04f')
corr = np.corrcoef(predictions, ratings)[0, 1]
print corr
现在我有另一个 features.txt,其中包含政客的特征数据(142 张图片),我没有对其进行评分。我想要做的是使用由上述代码构建的训练集/模型来为我的政治家生成预测的吸引力评级,但我完全不知道如何进行。该指南对此保持沉默,可能是因为它适用于了解 Python 的人:)。我花了很多时间试图找出修改/构建此代码以实现它的方法,但是我缺乏 Python/一般编码知识使得它很难弄清楚。
鉴于此站点上的重要脑力和知识,我希望有人知道解决方案并可以帮助我。对我的无知深表歉意,并提前感谢您的帮助。
【问题讨论】:
-
很简单。您执行与上述相同的步骤,但不要在
pca或regr上调用fit()。只需对您的新数据调用pca.transform()和regr.predict()。但为此,您需要将对象pca和regr保持不变。您应该更像for i in range(0, 400):正在做的那样解释您的代码,我可能会帮助为它编写代码。 -
感谢您的回复。据我所知(我没有编写此代码)。 i in range 是它循环了 400 次。因此,对于图像 1,它使用其他 399 个图像进行训练,然后预测图像 1,然后执行图像 2,并使用其他 399 个图像来训练和预测其评分。现在我认为我不需要那个,因为我想做的是使用我在这段代码中使用的 400 张具有评级的图像来预测我拥有的其他 142 张没有评级的图像。我只是不确定如何解开代码来做到这一点。
标签: python machine-learning scikit-learn linear-regression