tensorflow的DNNRegressor使用

之前有人问我sklearn的MLPRegressortensorflow的DNNRegressor在处理数据回归的问题时到底存在的区别是什么?

1.通过查看官网相关方法的解释,感觉除了参数的设置的多少有所不同之外,大致是相同的。(如果有错误的话,欢迎指正)

2.另外对于MLPRegressor(多层感知器)来说可以设置的层数应该比tensorflow的DNNRegressor(深度神经网络)少一些,因此tensorflow应该可以处理层数更多情况下的神经网络,因此可知适用于数据集更加复杂的场景。

3.同时我感觉tensorflow在进行使用时没有sklearn直接调库方便,因为tensorflow要把数据进行一定的处理使它成为特定的形式才能进行处理。

1.	# -*- coding: utf-8 -*-  
2.	import pandas as pd  
3.	import os  
4.	os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'  
5.	import tensorflow as tf  
6.	import numpy as np  
7.	train_data_file = 'test.csv'  
8.	train_data = pd.read_csv(train_data_file)  
9.	from sklearn import preprocessing  
10.	scaler = preprocessing.StandardScaler().fit(train_data)  
11.	train_data = scaler.transform(train_data)  
12.	train_data_features = train_data[:,0]  
13.	train_data_outcomes = train_data[:,1]  
14.	train_data_features = train_data_features.reshape(-1, 1)  
15.	feature_columns = [tf.contrib.layers.real_valued_column("", dimension=1)]  
16.	classifier = tf.contrib.learn.DNNRegressor(feature_columns=feature_columns,  
17.	    hidden_units=[8],  
18.	    optimizer=tf.train.RMSPropOptimizer(learning_rate=0.001),  
19.	    activation_fn=tf.nn.relu)  
20.	classifier.fit(x= train_data_features,  
21.	               y=train_data_outcomes,  
22.	               batch_size=4,  
23.	               max_steps=10000)  
24.	print("3 finished")  
25.	predict = list(classifier.predict(train_data_features))  
26.	print(len(predict))  
27.	print(classifier.evaluate(x= train_data_features, y=train_data_outcomes))  
28.	import matplotlib.pyplot as plt  
29.	plt.plot(train_data_features, train_data_outcomes, 'bo')  
30.	plt.plot(train_data_features, predict, 'ro')  
31.	plt.show()  

实验结果显示:

隐藏层:[10]

激活次数activation_fn=tf.nn.relu

迭代次数:10000次

实验结果: {'loss': 0.00030592017, 'global_step': 10000}

实验结果

 

隐藏层:[3]

激活次数:activation_fn=tf.nn.tanh

迭代次数:300000

实验结果:{'loss': 0.00093994406, 'global_step': 300000}  总时间:1.932878017425537

实验结果

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值