【问题标题】:Machine learning, applying training model to testing机器学习,将训练模型应用于测试
【发布时间】: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/一般编码知识使得它很难弄清楚。

鉴于此站点上的重要脑力和知识,我希望有人知道解决方案并可以帮助我。对我的无知深表歉意,并提前感谢您的帮助。

【问题讨论】:

  • 很简单。您执行与上述相同的步骤,但不要在 pcaregr 上调用 fit()。只需对您的新数据调用 pca.transform()regr.predict()。但为此,您需要将对象 pcaregr 保持不变。您应该更像 for i in range(0, 400): 正在做的那样解释您的代码,我可能会帮助为它编写代码。
  • 感谢您的回复。据我所知(我没有编写此代码)。 i in range 是它循环了 400 次。因此,对于图像 1,它使用其他 399 个图像进行训练,然后预测图像 1,然后执行图像 2,并使用其他 399 个图像来训练和预测其评分。现在我认为我不需要那个,因为我想做的是使用我在这段代码中使用的 400 张具有评级的图像来预测我拥有的其他 142 张没有评级的图像。我只是不确定如何解开代码来做到这一点。

标签: python machine-learning scikit-learn linear-regression


【解决方案1】:

没有 for 循环,它变得非常简单。

import numpy as np
from sklearn import decomposition
from sklearn import linear_model

features_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)

【讨论】:

  • 只需要做一些小的调整,它就可以完美运行。非常感谢 Vivek!
猜你喜欢
  • 2018-06-12
  • 2020-02-03
  • 2020-02-21
  • 2020-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-15
  • 2021-01-14
相关资源
最近更新 更多