Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将特征选择应用于新的X数据集_Python_Scikit Learn_Feature Selection - Fatal编程技术网

Python 将特征选择应用于新的X数据集

Python 将特征选择应用于新的X数据集,python,scikit-learn,feature-selection,Python,Scikit Learn,Feature Selection,第一次海报!我对数据科学非常陌生,决定参加一场比赛。我已经编写了一些代码,从我的培训数据集X 9999行,2000列中选择前10%的功能 我不明白的是,如何将相同的特征选择应用于新的验证数据集X_val,以便我可以使用Adaboostregrestor预测Y_val。任何帮助都将不胜感激!使用下面的代码,我得到一个关于X_val有太多特性的错误 from numpy import genfromtxt from numpy import savetxt from sklearn.ensemble

第一次海报!我对数据科学非常陌生,决定参加一场比赛。我已经编写了一些代码,从我的培训数据集X 9999行,2000列中选择前10%的功能

我不明白的是,如何将相同的特征选择应用于新的验证数据集X_val,以便我可以使用Adaboostregrestor预测Y_val。任何帮助都将不胜感激!使用下面的代码,我得到一个关于X_val有太多特性的错误

from numpy import genfromtxt
from numpy import savetxt
from sklearn.ensemble import AdaBoostRegressor
from sklearn.feature_selection import SelectPercentile
from sklearn.feature_selection import f_regression

# Load training data
X = genfromtxt('train_X_final.csv', delimiter=',')
Y = genfromtxt('train_Y_final.csv', delimiter=',')

# Feature Selection
X_new = SelectPercentile(score_func = f_regression, percentile = 10).fit_transform(X, Y)

# Create regression object
clf = AdaBoostRegressor(n_estimators = 100, loss = 'exponential')

# Load validation data
X_val = genfromtxt('val_X_final.csv', delimiter=',')

# Train dataset
clf.fit(X_new, Y)

Y_pred = clf.predict(X_val)

# Crop impossible values
Y_pred[Y_pred < 0] = 0
Y_pred[Y_pred > 600] = 600

savetxt("Y_predict_feat.csv", Y_pred, delimiter=",")

您希望保存要素选择器对象并在验证集上调用其变换方法,如下所示:

selector = SelectPercentile(score_func = f_regression, percentile = 10)
X_new = selector.fit_transform(X, Y)
X_val = selector.transform(genfromtxt('val_X_final.csv', delimiter=','))

clf.fit(X_new, Y)
Y_pred = clf.predict(X_val)

这很有效,谢谢!不幸的是,它并没有让我在比赛中获得比adaboost本身更好的分数。回到绘图板上。。。