from sklearn import model_selection
from sklearn import datasets
from sklearn import metrics
import tensorflow as tf
learn = tf.contrib.learn
#自定义模型,传入数据即特征,以及标签,返回预测值、损失值、训练步骤
def my_model(features,target):
target=tf.one_hot(target,3,1,0) #对于标签编码成one-hot形式
#使用TFLearn库提供的全连接网络,即logistic_regression是单层全连接网络,本质就是逻辑回归
logits,loss =learn.models.logistic_regression(features,target)
train_op=tf.contrib.layers.optimize_loss(
loss,
tf.contrib.framework.get_global_step(),#获取训练步数并在训练时更新
optimizer='Adagrad',
learning_rate=0.1
)
return tf.arg_max(logits,1),loss,train_op
iris=datasets.load_iris()
x_train,x_test,y_train,y_test = model_selection.train_test_split(
iris.data,iris.target,test_size=0.2,random_state=0)
#对自定义的模型进行封装
classifier = learn.Estimator(model_fn=my_model)
classifier.fit(x_train,y_train,steps=100)
y_predicted=classifier.predict(x_test)