作为政治学研究生的我,实在是高估了自己的能力(所谓雄心勃勃却一无是处)。我正在尝试对一组政治人物进行吸引力预测,用于政治学研究。我参考了这个指南。
在提取了地标并生成特征后,我使用了学习集(CFD,400张带有评分的图像)来构建一个模型,该模型通过交叉验证预测的评分与实际评分的相关性为0.49(对我来说已经足够了)。这是那段代码:
import numpy as npfrom sklearn import decompositionfrom sklearn import linear_modelfeatures = 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+1np.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/编程的基本知识,这对我来说非常困难。
鉴于这个网站上有很多聪明且知识渊博的人,我希望有人知道解决方案并能帮助我。抱歉我的无知,提前感谢任何帮助。
回答:
如果不使用for循环,事情就变得非常简单了。
import numpy as npfrom sklearn import decompositionfrom sklearn import linear_modelfeatures_train = np.loadtxt('C:\\Users\\bruker\\Desktop\\Data\\CFD_features.txt', delimiter=',')ratings_train = np.loadtxt('C:\\Users\\bruker\\Desktop\\Data\\CFD_ratings.txt', delimiter=',')pca = decomposition.PCA(n_components=13)pca.fit(features_train)features_train = pca.transform(features_train)regr = linear_model.LinearRegression()regr.fit(features_train, ratings_train)features_test = np.loadtxt('C:\\Users\\bruker\\Desktop\\Data\\CFD_features_Test.txt', delimiter=',')features_test = pca.transform(features_test)predictions = regr.predict(features_test)