学习笔记:csv文件的读取和tf.contrib.learn Quickstart

tf.contrib.learn 是TensorFlow高层次机器学习API。

以下是TensorFlow官方文档的实例代码解析

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import itertools

import pandas as pd
import tensorflow as tf

tf.logging.set_verbosity(tf.logging.INFO)#set logging verbosity to INFO

COLUMNS = ["crim", "zn", "indus", "nox", "rm", "age","dis", "tax", "ptratio", "medv"]
FEATURES = ["crim", "zn", "indus", "nox", "rm","age", "dis", "tax", "ptratio"]
LABEL = "medv"
#数据集读取,训练集,测试集,预测集
training_set = pd.read_csv("boston_train.csv", skipinitialspace=True, skiprows=1, names=COLUMNS)
test_set = pd.read_csv("boston_test.csv", skipinitialspace=True,skiprows=1, names=COLUMNS)
prediction_set = pd.read_csv("boston_predict.csv", skipinitialspace=True,skiprows=1, names=COLUMNS)

#skipinitialspace : boolean, default False忽略分隔符后的空白(默认为False,即不忽略).
#skiprows : list-like or integer, default None需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。
#创建特征容量器FeatureColumns,把读入的特征分解为一个列表
feature_cols = [tf.contrib.layers.real_valued_column(k) for k in FEATURES]
#构建DNN网络,两个隐层,每层10个神经单元
regressor = tf.contrib.learn.DNNRegressor(feature_columns=feature_cols,
                                          hidden_units=[10, 10],
                                          model_dir="/tmp/boston_model")
#定义输入函数,输入是数据集,返回的是FeatureColumns和labels(标签)
def input_fn(data_set):
    feature_cols = {k: tf.constant(data_set[k].values) for k in FEATURES}#把feature_cols变为TensorFlow常量
    labels = tf.constant(data_set[LABEL].values)
    return feature_cols, labels

#-------------------------Training the Regressor-------------------------------
#迭代5000步 classifer.fit 训练模型
regressor.fit(input_fn=lambda: input_fn(training_set), steps=5000)
#--------------------------Evaluating the Model----------------------
#计算精度
ev = regressor.evaluate(input_fn=lambda: input_fn(test_set), steps=1)

loss_score = ev["loss"]
print("Loss: {0:f}".format(loss_score))

#-------------------------Making Predictions-----------------------
#输入prediction_set数据集对模型预测
y = regressor.predict(input_fn=lambda: input_fn(prediction_set))
# .predict() returns an iterator; convert to a list and print predictions
predictions = list(itertools.islice(y, 6))#itertools用于高效循环的迭代函数集合,返回前6个值
print ("Predictions: {}".format(str(predictions)))



重要知识点:

tf.contrib.learn.datasets.base.load_csv_with_header 加载csv格式数据

tf.contrib.learn.DNNClassifier 建立DNN模型(classifier)

classifer.fit 训练模型

classifier.evaluate 评价模型

classifier.predict 预测新样本

函数my_input_fn():返回值frature_cols是一个字典,包含键值对,把列名和数据特征对应起来,返回值labels只是一个包含标签的张量。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值