我只是想让一些代码工作,但我不断收到错误。
代码是
import tensorflow.contrib.learn as skflow
from sklearn import datasets, metrics
iris = datasets.load_iris()
classifer = skflow.LinearClassifier(n_classes=3)
classifier.fit(iris.data, iris.target)
score = metrics.accuracy_score(iris.target, classifier.predict(iris.data))
print ("Accuracy: %f" % score)
但是我收到此错误(研究和修改后的最新错误)
Traceback (most recent call last):
File "E:UsersblackPythonmachine-learningMLappIris.py", line 6, in <module>
classifer = skflow.LinearClassifier(n_classes=3)
TypeError: __init__() missing 1 required positional argument: 'feature_columns'
任何帮助将不胜感激。
- 蟒蛇:3.5
- 张量流:1.3.0
- 学习:0.18.2
- 视窗 10 64 位
你必须定义你的feature_columns
- 这是完整的脚本:
import tensorflow as tf
import tensorflow.contrib.learn as skflow
from sklearn import datasets, metrics
iris = datasets.load_iris()
feature_columns = skflow.infer_real_valued_columns_from_input(iris.data)
# WARNING:tensorflow:float64 is not supported by many models, consider casting to float32.
classifier = skflow.LinearClassifier(feature_columns=feature_columns, n_classes=3)
classifier.fit(x=iris.data, y=iris.target, steps=20000)
predictions = list(classifier.predict(iris.data, as_iterable=True))
score = metrics.accuracy_score(iris.target, predictions)
print ("Accuracy: %f" % score)
# Accuracy: 0.980000
或者,您也可以使用 evaluate
方法使用单个命令进行评估:
accuracy_score = classifier.evaluate(iris.data, iris.target)["accuracy"]
print ("Accuracy: %f" % accuracy_score)
# Accuracy: 0.980000
警告是由于iris.data
被float64
- 它似乎不会影响这里的任何东西,但您可以随时将其投射到 float32
.
tf.contrib.learn
快速入门以及此简短教程也可能很有用。
测试:
- 蟒蛇 3.5.3
- 张量流 1.2.1
- scikit-learn 0.18.1
- 视窗 7(64 位)