Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/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 我怎样才能取回相应的功能?_Python_Arrays_Numpy_Pandas_Machine Learning - Fatal编程技术网

Python 我怎样才能取回相应的功能?

Python 我怎样才能取回相应的功能?,python,arrays,numpy,pandas,machine-learning,Python,Arrays,Numpy,Pandas,Machine Learning,我将pandas数据帧的两列转换为numpy数组,用作机器学习问题的特性和标签 代码: Features当前是一个频率计数数组(我之前使用了CountVectorizer来拟合和转换原始的pandas dataframe列)。我将标签的完整列表存储为pred,但我希望每个标签都具有相应的功能,以便将标签列表返回到我的数据帧 预测的顺序与传递的数据相同(正如@Ulf所指出的,这里您使用的术语“feature”是错误的,feature是矩阵的一列,您使用countvectorizer计算的特定对象;

我将pandas数据帧的两列转换为numpy数组,用作机器学习问题的特性和标签

代码:


Features当前是一个频率计数数组(我之前使用了CountVectorizer来拟合和转换原始的pandas dataframe列)。我将标签的完整列表存储为pred,但我希望每个标签都具有相应的功能,以便将标签列表返回到我的数据帧

预测的顺序与传递的数据相同(正如@Ulf所指出的,这里您使用的术语“feature”是错误的,feature是矩阵的一列,您使用countvectorizer计算的特定对象;行是观察值、样本、数据点,这就是您当前所称的features)。因此,为了查看样本标签对,您可以简单地将它们压缩在一起:

pred = clf.predict(features)
for sample, label in zip(features, pred):
  print sample, label  
如果你真的想恢复每一列的含义,你的CountVectorizer就是你的人。您在代码的某个地方创建了它

vectorizer = CountVectorizer( ... )
后来就用了

... = vectorizer.fit_transform( ... ) 
现在,您可以使用它将样本转换回

pred = clf.predict(features)
for sample, label in zip(features, pred):
  print vectorizer.inverse_transform(np.array([sample])), label  

预测的顺序与传递的数据相同(正如@Ulf所指出的,您在这里错误地使用了术语“feature”,feature是矩阵的一列,您使用countvectorizer计算的特定对象;行是观察值、样本、数据点,这就是您当前所称的features)。因此,为了查看样本标签对,您可以简单地将它们压缩在一起:

pred = clf.predict(features)
for sample, label in zip(features, pred):
  print sample, label  
如果你真的想恢复每一列的含义,你的CountVectorizer就是你的人。您在代码的某个地方创建了它

vectorizer = CountVectorizer( ... )
后来就用了

... = vectorizer.fit_transform( ... ) 
现在,您可以使用它将样本转换回

pred = clf.predict(features)
for sample, label in zip(features, pred):
  print vectorizer.inverse_transform(np.array([sample])), label  

这里您将获得两组行(训练和测试),并将结果值放入变量特性中。看起来您正在调用您的示例、功能。这是机器学习的一大禁忌!特性是数据集的属性,通常是列,因此阅读此代码非常混乱。但是,既然你预测“特征”(我想这是你的(样本,特征)矩阵),则生成的数组pred应该正确排序,您可以直接将其放回dataframe.Hmm中。这是有道理的,但我的示例基本上是我的功能,因为除了我希望它们具有的标签(与功能/示例类似)之外,我没有任何其他信息;我使用这个ML过程将样本合并到相应的标签中。我可以保持代码不变,只使用@lejlot的答案就可以了吗?这里有两组行(训练和测试)并将结果值放入变量features.*中。看起来您正在调用示例features。这是机器学习中的一个大禁忌!features是数据集的属性,通常是列,因此阅读此代码非常混乱。但是,由于您预测的是“features”(我想这是您的属性矩阵)(样本、特征),然后生成的数组pred应该正确排序,您可以将其直接放回dataframe.Hmm中。这是有道理的,但我的样本本质上就是我的特征,因为除了我希望它们具有的标签(类似于特征/样本)之外,我没有关于它们的任何其他信息;我使用这个ML过程将样本整合到相应的标签中。我可以保持代码不变,只使用@lejlot的答案就可以了吗?谢谢。这是有道理的,但我的样本本质上是我的功能,因为除了我希望它们有什么标签之外,我没有其他任何关于它们的信息(与特征/样本相似);我正在使用此ML过程将样本合并到相应的标签中。我可以保持代码不变并使用您的答案吗?这只是关于名称、惯例,而不是实际问题。很好。谢谢。这很有意义,但我的样本本质上是我的功能,因为我没有任何其他信息n除了我希望它们有什么标签(类似于功能/示例)之外,我正在使用此ML过程将示例合并到相应的标签中。我可以保持代码不变并使用您的答案吗?这只是名称、惯例,而不是实际问题。您可以走了。