Tensorflow类型错误';功能列';线性分类器

Tensorflow类型错误';功能列';线性分类器,tensorflow,machine-learning,scikit-learn,Tensorflow,Machine Learning,Scikit Learn,我只是想得到一些代码来工作,但我不断得到错误 代码是 import tensorflow.contrib.learn as skflow 从sklearn导入数据集、度量 iris=数据集。加载\u iris() Classifier=skflow.LinearClassifier(n_classes=3) 分类器.fit(iris.data,iris.target) 分数=度量。准确度\分数(iris.target,classifier.predict(iris.data)) 打印(“精度:%

我只是想得到一些代码来工作,但我不断得到错误

代码是

import tensorflow.contrib.learn as skflow
从sklearn导入数据集、度量
iris=数据集。加载\u iris()
Classifier=skflow.LinearClassifier(n_classes=3)
分类器.fit(iris.data,iris.target)
分数=度量。准确度\分数(iris.target,classifier.predict(iris.data))
打印(“精度:%f”%score)
但我得到了这个错误(研究和修改后的最新错误)

回溯(最近一次呼叫最后一次):
文件“E:\Users\black\Python\machine learning\MLappIris.py”,第6行,在
Classifier=skflow.LinearClassifier(n_classes=3)
TypeError:\uuuu init\uuuuu()缺少1个必需的位置参数:“feature\u columns”
任何帮助都将不胜感激

  • Python:3.5
  • Tensorflow:1.3.0
  • sklearn:0.18.2
  • Windows 10 64位

您必须定义您的
功能列
-以下是完整的脚本:

将tensorflow导入为tf
导入tensorflow.contrib.learn作为skflow
从sklearn导入数据集、度量
iris=数据集。加载\u iris()
feature\u columns=skflow。从输入(iris.data)推断\u实值\u列\u
警告:TyoSoFr:FLUAT64不支持许多模型,考虑铸造到FLUAT32。
分类器=skflow.LinearClassifier(特征列=feature列,n类=3)
fit(x=iris.data,y=iris.target,步长=20000)
预测=列表(分类器.predict(iris.data,as_iterable=True))
分数=度量。准确度\分数(iris.target,预测)
打印(“精度:%f”%score)
#准确度:0.980000
或者,您也可以使用
evaluate
方法,使用单个命令进行计算:

accurity\u score=classifier.evaluate(iris.data,iris.target)[“accurity”]
打印(“精度:%f”%accurity\u score)
#准确度:0.980000
该警告是由于
iris.data
float64
-它似乎不会影响此处的任何内容,但您始终可以将其强制转换为
float32

tf.contrib.learn
,以及这个简短的代码,可能也很有用

通过以下方式进行测试:

  • Python 3.5.3
  • Tensorflow 1.2.1
  • scikit学习0.18.1
  • Windows 7(64位)

您应该检查一下示例。“任何帮助都将不胜感激”-但您似乎不感激我的回答…我的道歉是因为我外出工作,所以无法学习。您的代码已经运行,我已经将其标记为有效。