tensorflow 做多元线性回归时怎样对非数据型数据(分类型数据)进行处理(编码)

代码如下:

def read_data(file_queue):
    ‘‘‘
    the function is to get features and label (即样本特征和样本的标签)
    数据来源是csv的文件,采用tensorflow 自带的对csv文件的处理方式
    :param file_queue:
    :return: features,label
    ‘‘‘
    # 读取的时候需要跳过第一行
    reader = tf.TextLineReader(skip_header_lines=1)
    key, value = reader.read(file_queue)
    # 对于数据源中空的值设置默认值
    record_defaults = [[‘‘], [‘‘], [‘‘], [‘‘], [0.], [0.], [0.], [0.], [‘‘],[0], [‘‘], [0.], [‘‘], [‘‘], [0]]
    # 定义decoder,每次读取的执行都从文件中读取一行。然后,decode_csv 操作将结果解析为张量列表
    province, city, address, postCode, longitude,latitude, price, buildingTypeId, buildingTypeName, tradeTypeId, tradeTypeName, expectedDealPrice, listingDate, delislingDate, daysOnMarket = tf.decode_csv(value, record_defaults)
    #对非数值数据进行编码:buildingTypeName
    preprocess_buildingTypeName_op = tf.case({
        tf.equal(buildingTypeName, tf.constant(‘Residential‘)): lambda: tf.constant(0.00),
        tf.equal(buildingTypeName, tf.constant(‘Condo‘)): lambda: tf.constant(1.00),
        tf.equal(buildingTypeName, tf.constant(‘Mobile Home‘)): lambda: tf.constant(2.00),
        tf.equal(buildingTypeName, tf.constant(‘No Building‘)): lambda: tf.constant(3.00),
        tf.equal(buildingTypeName, tf.constant(‘Row / Townhouse‘)): lambda: tf.constant(4.00),
        tf.equal(buildingTypeName, tf.constant(‘Duplex‘)): lambda: tf.constant(5.00),
        tf.equal(buildingTypeName, tf.constant(‘Manufactured Home‘)): lambda: tf.constant(6.00),
        tf.equal(buildingTypeName, tf.constant(‘Commercial‘)): lambda: tf.constant(7.00),
        tf.equal(buildingTypeName, tf.constant(‘Other‘)): lambda: tf.constant(8.00),
    }, lambda: tf.constant(-1.00), exclusive=True)
    # 对tradeTypeName 进行编码 Sale,Lease
    preprocess_tradeTypeName_op = tf.case({
        tf.equal(tradeTypeName, tf.constant(‘Sale‘)): lambda: tf.constant(0.00),
        tf.equal(tradeTypeName, tf.constant(‘Lease‘)): lambda: tf.constant(1.00),
    }, lambda: tf.constant(-1.00), exclusive=True)
    features = tf.stack([latitude,longitude,price, preprocess_buildingTypeName_op, preprocess_tradeTypeName_op,expectedDealPrice])

return features, daysOnMarket

也就是通过:tf.case ,tf.equal和lambda 函数来实现

原文地址:https://www.cnblogs.com/bluesl/p/9215802.html

时间: 2024-10-10 18:21:47

tensorflow 做多元线性回归时怎样对非数据型数据(分类型数据)进行处理(编码)的相关文章

tensorflow实现多元线性回归时预测出的参数为nan

这是由于在用feed_dict 进行数据喂养之前没有做数据归一化: 解决办法: 使用sklearn包中的preprocessing做归一化: 大妈如下 from sklearn import preprocessing example是我们要归一化的数据 scaler = preprocessing.StandardScaler().fit(example) print(scaler.mean_, scaler.scale_) x_data_standard = scaler.transform

TensorFlow入门:线性回归

随机.mini-batch.batch(见最后解释) 在每个 epoch 送入单个数据点.这被称为随机梯度下降(stochastic gradient descent).我们也可以在每个 epoch 送入一堆数据点,这被称为 mini-batch 梯度下降,或者甚至在一个 epoch 一次性送入所有的数据点,这被称为 batch 梯度下降. 转自:https://cloud.tencent.com/developer/article/1004866 TensorFlow基本使用 TensorFl

TensorFlow 制作自己数据集时,xml转csv

TensorFlow 制作自己数据集时,xml转csv千篇一律,把我拐入坑里了. 如果训练自己的数据集只有一个类别,用网络上的xml_to_csv,完全没有问题,源码如下: # -*- coding: utf-8 -*- import os import glob import pandas as pd import xml.etree.ElementTree as ET def xml_to_csv(path): xml_list = [] # 读取注释文件 for xml_file in g

Java运行时异常和非运行时异常

1.Java异常机制 Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类.Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示: 图片来源:http://blog.csdn.net/wuwenxiang91322/article/details/10346337 2.Throwable Throwable类是所有异常或错误的超类,它有两个子类:Error和Exception,分别表示错误和异常.其中异

3星|《工作生活双全法则》:我们很容易掉入注重工作时长而非成果的陷阱

工作生活双全法则(<哈佛商业评论>增刊) 工作生活双全法则(<哈佛商业评论>增刊) <哈佛商业评论>讲兼顾工作与生活的3篇文章.总体来说,这在全世界都是个难题.作者的调查和统计结果表明,有些时候工作的压力来自于公司对工作时长的关注超过了对工作成果的关注. 以下是书中一些内容的摘抄: 1:上述两位作者基于对全球4000名高管的访谈,发现成功的高管往往能巧妙地将工作和家庭融合在一起,这样他们就在取得职业成就的同时,保持了与家庭成员的和谐关系.#16 2:最后一点是高管的普遍

[WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口

原文:[WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口 [WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口 周银辉 现象: 大家可以试试下面这个很有趣但会带来Defect的现象:当我们将子窗口按照ShowDialog()的方式显示出来的时候,很明显该窗口是模式化的(即主窗口等待该窗口的返回,主窗口将不相应用户输入),但如果此时将子窗口的Visibility设置成Visibility.Hidden来隐藏窗口,然后再将Visibility设置成Visibility.Visible来

填充路径时使用的非零环绕规则

如果当前路径是循环的,或者包含多个相交的子路径,那么Canvas的绘图环境变量就必须判断,当fill()方法被调用时,应该如何对当前路径进行填充. Canvas在填充互相有交叉的路径时,使用非零环绕规则 非零环绕 对于路径中的任意给定区域,从该区域内部画一条足够长的线段,使此线段的终点完全落在路径范围之外. 接下来将计数器初始化为0,然后,每当这条线段与路径上的直线或曲线相交时,就改变计算器的值.如果是与路径的顺时针部分相交,则加1,如果与路径的逆时针相交,则减1. 若计算器的最终值不是0,那么

机器学习与Tensorflow(1)——机器学习基本概念、tensorflow实现简单线性回归

一.机器学习基本概念 1.训练集和测试集 训练集(training set/data)/训练样例(training examples): 用来进行训练,也就是产生模型或者算法的数据集 测试集(testing set/data)/测试样例 (testing examples):用来专门进行测试已经学习好的模型或者算法的数据集 2.特征向量 特征向量(features/feature vector):属性的集合,通常用一个向量来表示,附属于一个实例 3.分类问题和回归问题 分类 (classific

A--多元线性回归的python实现

In [1]: import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt In [2]: #创建一个矩阵 a = np.array([[1, 2], [3, 4]]) m = np.mat(a) m [2]: matrix([[1, 2], [3, 4]]) In [4]: #矩阵运算回顾 # 矩阵转秩 m.T # 矩阵乘法 m * m a * a # 矩阵?列式