我刚从Tensorflow开始。据我所知,SkFlow是.
TensorFlow的简化接口
对我来说简单是好事。
TensorFlow's Github有一些有用的入门示例,使用SkFlow中包含的Iris数据集。这是从第一个例子,线性分类器。
iris = datasets.load_iris()
feature_columns = learn.infer_real_valued_columns_from_input(iris.data)这个iris对象具有<class 'sklearn.datasets.base.Bunch'>类型,是一个类似于dict的结构,包含两个列表、数据和目标。
这个链接展示了如何从CSV (或至少一个URL)加载数据。在页面顶部,它展示了如何通过上面的方法加载,然后通过URL加载,如下所示
# Load the Pima Indians diabetes dataset from CSV URL
import numpy as np
import urllib
# URL REMOVED - SO DOES NOT LIKE SHORTENED URL
# URL for the Pima Indians Diabetes dataset
raw_data = urllib.urlopen(url)
# load the CSV file as a numpy matrix
dataset = np.loadtxt(raw_data, delimiter=",")
print(dataset.shape)
# separate the data from the target attributes
X = dataset[:,0:7]
y = dataset[:,8]我知道X是数据,y是目标。但这不是github示例中的数据结构,也不是指南的第一个示例中的结构。
我是否打算将CSV数据转换为单个对象,如
iris = datasets.load_iris()或者我是否使用X和y输出?如果是这样的话,我应该如何使用线性分类器的例子来实现这一点呢?
发布于 2016-12-14 02:56:07
我在做同样的教程。我使用了scikit学习的cross_validation方法将scikit集群对象分解为训练/测试拆分。然后只需在classifier.fit和classifier.evaluate方法中使用这些方法。
from sklearn import cross_validation
import tensorflow as tf
import numpy as np
from sklearn import datasets
# load from scikit learn
iris = datasets.load_iris()
# break into train/test splits
x_train, x_test, y_train, y_test = cross_validation.train_test_split(
iris.data, iris.target, test_size=0.2, random_state=42)
# commented out the previous loading code
'''
# Data sets
IRIS_TRAINING = "iris_training.csv"
IRIS_TEST = "iris_test.csv"
# Load datasets.
training_set = tf.contrib.learn.datasets.base.load_csv_with_header(
filename=IRIS_TRAINING,
target_dtype=np.int,
features_dtype=np.float32)
test_set = tf.contrib.learn.datasets.base.load_csv_with_header(
filename=IRIS_TEST,
target_dtype=np.int,
features_dtype=np.float32)
'''
# Specify that all features have real-value data
feature_columns = [tf.contrib.layers.real_valued_column("", dimension=4)]
# Build 3 layer DNN with 10, 20, 10 units respectively.
classifier = tf.contrib.learn.DNNClassifier(feature_columns=feature_columns,
hidden_units=[10, 20, 10],
n_classes=3,
model_dir="./tmp/iris_model")
# Fit model. Add your train data here
classifier.fit(x=x_train,y=y_train,steps=2000)
# Evaluate accuracy. Add your test data here
accuracy_score = classifier.evaluate(x=x_test,y=y_test)["accuracy"]
print('Accuracy: {0:f}'.format(accuracy_score))
# Classify two new flower samples.
new_samples = np.array(
[[6.4, 3.2, 4.5, 1.5], [5.8, 3.1, 5.0, 1.7]], dtype=float)
y = list(classifier.predict(new_samples, as_iterable=True))
print('Predictions: {}'.format(str(y)))https://stackoverflow.com/questions/41131332
复制相似问题