使用 sklearn 的"预测"函数



如果我在sklearn中使用分类值的伪变量训练模型,那么将单行特征输入该模型以获得预测结果的最佳实践是什么?对于所有的输入数据集,我正在努力获得分数。如果我的列比我用来训练/拟合模型的数据集少,它会抛出错误吗。?

澄清一下:在构建模型之前,我使用了一个有5列的数据集,并创建了超过118个伪列。现在,我有一行5列的数据,我想在predict函数中使用。我该怎么做?

如有任何帮助,我们将不胜感激。

根据表状态扩展特性是错误的,因为您不能用其他数据重复它。若你们想以这种方式创建特性,你们应该使用一个能够记住特性结构的构造函数。由于您没有给出数据示例,以下是如何创建构造函数的主要思想:

import pandas as pd
data = pd.DataFrame([['Missouri', 'center', 'Jan', 55, 11],
['Kansas', 'center', 'Mar', 54, 31],
['Georgia', 'east', 'Jan', 37, 18]],
columns=('state', 'pos', 'month', 'High Temp', 'Low Temp'))

test =  pd.DataFrame([['Missouri', 'center', 'Feb', 44, 23], 
['Missouri', 'center', 'Mar', 55, 33]],
columns=('state', 'pos', 'month', 'High Temp', 'Low Temp'))  

class DummyColumns():
def __init__(self, data):
# Columns constructor
self.empty = pd.DataFrame(columns=(list(data.columns) +
list(data.state.unique()) +
list(data.pos.unique()) +
['Winter', 'Not winter']))
def __call__(self, data):
# Initializing with zeros
self.df = pd.DataFrame(data=0, columns=self.empty.columns, index=data.index)        
for row in data.itertuples():
self.df.loc[row.Index, :5] = row[1:]
self.df.loc[row.Index, row.state] = 1
self.df.loc[row.Index, row.pos] = 1
if row.month in ['Dec', 'Jan', 'Feb']:
self.df.loc[row.Index, 'Winter'] = 1
else:
self.df.loc[row.Index, 'Not winter'] = 1
return self.df       
add_dummy = DummyColumns(data)
dummy_test = add_dummy(test)
print dummy_test
state     pos month  High Temp  Low Temp  Missouri  Kansas  Georgia  
0  Missouri  center   Feb         44        23         1       0        0   
1  Missouri  center   Mar         55        33         1       0        0   
center  east  Winter  Not winter  
0       1     0       1           0  
1       1     0       0           1  

相关内容

  • 没有找到相关文章

最新更新