房价预测问题——神经网络的TensorFlow实现-程序员宅基地

技术标签: tensorflow  深度学习  神经网络  

 房价预测问题的tensorflow库直接实现,本来想输出r2,但是不太清楚怎么使用tensorflow直接输出r2,所以就用了loss

import tensorflow as tf
tf = tf.compat.v1
tf.disable_v2_behavior()
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import MinMaxScaler
import numpy as np
n_inputs=8
n_output=1
n_hidden1=100
n_hidden2=50

def process_feature(X):
    scaler=StandardScaler()
    X=scaler.fit_transform(X)
    scaler=MinMaxScaler(feature_range=(-1,1))
    X=scaler.fit_transform(X)
    return X

X=tf.placeholder(tf.float32,shape=(None,n_inputs))
y=tf.placeholder(tf.float32,shape=None)

hidden1=tf.layers.dense(X,n_hidden1,activation=tf.nn.relu)
hidden2=tf.layers.dense(hidden1,n_hidden2,activation=tf.nn.relu)
output=tf.layers.dense(hidden2,n_output)
cross_entry=tf.square(y-output)
loss=tf.reduce_mean(cross_entry)
optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.1)
train_op=optimizer.minimize(loss)
correct=tf.equal(tf.argmax(y,1),tf.argmax(output,1))
accuracy_score=tf.reduce_mean(tf.cast(correct,tf.float32))
lode_data=fetch_california_housing()
X_lode = lode_data.data
y_lode = lode_data.target.reshape(-1, 1)

with tf.Session() as sess:
    tf.global_variables_initializer().run()
    X_train,X_test,y_train,y_test=train_test_split(X_lode,y_lode,test_size=0.5,random_state=0)
    X_train=np.array(process_feature(X_train))
    X_test=np.array(process_feature(X_test))

    for step in range(5000):
        i=np.random.randint(0,len(X_train))
        X_i=X_train[i].reshape(1,-1)
        y_i=y_train[i].reshape(1,-1)
        sess.run(train_op,feed_dict={X:X_i,y:y_i})
        loss_=sess.run(loss,feed_dict={X:X_i,y:y_i})
        if step%100==0:
            print("第{}个:".format(step))
            print("loss={}".format(loss_))

输出结果为

第0个:
loss=1.931797742843628
第100个:
loss=0.0004440907505340874
第200个:
loss=0.1922372281551361
第300个:
loss=0.064860038459301
第400个:
loss=2.317430019378662
第500个:
loss=0.0021678160410374403
第600个:
loss=0.09645801782608032
第700个:
loss=0.008708802983164787
第800个:
loss=4.162382125854492
第900个:
loss=1.075676679611206
第1000个:
loss=0.017900949344038963
第1100个:
loss=0.0009775909129530191
第1200个:
loss=0.7814558744430542
第1300个:
loss=1.3715777397155762
第1400个:
loss=0.8856215476989746
第1500个:
loss=0.22965915501117706
第1600个:
loss=0.11970070749521255
第1700个:
loss=0.011234978213906288
第1800个:
loss=0.5727159380912781
第1900个:
loss=0.13193991780281067
第2000个:
loss=3.595919609069824
第2100个:
loss=0.4728265702724457
第2200个:
loss=0.8856393694877625
第2300个:
loss=0.014978619292378426
第2400个:
loss=0.3310540020465851
第2500个:
loss=0.011562751606106758
第2600个:
loss=0.001214497722685337
第2700个:
loss=0.9096536636352539
第2800个:
loss=0.0442768819630146
第2900个:
loss=0.4617774188518524
第3000个:
loss=0.18205884099006653
第3100个:
loss=0.019049761816859245
第3200个:
loss=0.09607062488794327
第3300个:
loss=3.223975419998169
第3400个:
loss=0.0025411953683942556
第3500个:
loss=0.7368151545524597
第3600个:
loss=0.7690043449401855
第3700个:
loss=0.22527238726615906
第3800个:
loss=7.095444202423096
第3900个:
loss=0.9337527751922607
第4000个:
loss=0.17915597558021545
第4100个:
loss=0.8352121710777283
第4200个:
loss=0.05043191462755203
第4300个:
loss=1.4584596157073975
第4400个:
loss=0.5663894414901733
第4500个:
loss=0.8200605511665344
第4600个:
loss=0.22166895866394043
第4700个:
loss=6.3242340087890625
第4800个:
loss=0.8125528693199158
第4900个:
loss=1.1417784690856934

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_52945258/article/details/118370486

智能推荐

卡通人物手脚的绘画方法和技巧-程序员宅基地

文章浏览阅读150次。俗话说“画人难画手”,这说明画手是比较难的,为此我们应先了解手的结构。  手的结构可分为手掌和手腕两部分,要将手掌看成一个不规则的五边形,作画时,先要将这两部分看作一个整体,画出手的边线,再定出大拇指的位置。要明确每个手指的长度是各不相同的,手指的关节部位要适当弯曲,在特写画面中,要画出手指的两个关节,特别要强调一下拇指和小指的外轮廓线,这样会更有立体感。   [img]/uplo..._opengl绘制卡通形象

网页右边没有滚动条,内容超出也看不到怎么办?_网页没有下拉滚动条怎么办-程序员宅基地

文章浏览阅读4.4k次。遇到的问题:博主正在进行vue组件开发,将主页面添加了组件之后,发现在浏览器中打开内容超出但没有滚动条解决方法:我们可以找一下css中的设置,去掉 html和body中的overflow:hidden;即可!..._网页没有下拉滚动条怎么办

Linux中源代码安装及ps命令_linux安装ps命令-程序员宅基地

文章浏览阅读2.5k次。1.源码安装:httpd(httpd依赖于两个软件)源代码安装步骤:确认源代码编译环境需安装支持 C/C++程序语言的 编译器解包 —— tar解包、释放出源代码文件配置 —— ./configure针对当前系统、软件环境,配置好安装参数编译 —— make将源代码文件变为二进制的可执行程序安装 —— make install将编译好的程序文件复制到系统中先通过sftp命令在windows命令上将文件传到linux中将文件解压缩至指定目录先创建_linux安装ps命令

pandas入门:Series、DataFrame、Index基本操作都有了!-程序员宅基地

文章浏览阅读1.7w次,点赞13次,收藏157次。导读:pandas是一款开放源码的BSD许可的Python库。它基于NumPy创建,为Python编程语言提供了高性能的、易于使用的数据结构和数据分析工具。pandas应用领域广泛,包括..._dataframe index

前端组件化之路-程序员宅基地

文章浏览阅读74次。前言: 最近在工作中发现我们前端没有一个系统的体系去支撑,产生很多不必要的代码冗余,一些公共的视图模块重复开发,导致开发效率下降,最让我郁闷的是,前端开发好的静态页面给java开发去做业务逻辑处理,会彻底的把我们开发的页面结构改的惨目忍睹。这样的形式做项目在不去想点子优化做法,真不是个合格的程序员。组件化形态: 组件化形态很多种,我个人理解为2个分支:..._纯静态前端页面如何做组件化

MySQL数据库——案例:电子商务网站设计_电商购物网站数据库表-程序员宅基地

文章浏览阅读3.1w次,点赞85次,收藏578次。在了解数据库设计的基本流程、规范以后,为了学以致用,本节将以电子商务网站为例,演示如何进行数据库设计。通过实际操作,加深对数据库设计的理解。1、需求分析电子商务网站是一种在互联网上开展电子商务的平台,常见的电子商务网站有淘宝、天猫、京东、亚马逊等。一般来说,电子商务网站最基本的功能是在线购物,它分为前台和后台,后台面向网站的运营人员,用于录人数据,前台面向访问网站的用户,用于选购商品。下面通过表1列举电子商务网站中的一些常见需求。表1 电子商务网站需求说明表1中列举的需求非常多,但对于初学者来说,_电商购物网站数据库表

随便推点

Newcoder 148 A.Rikka with Lowbit(水~)-程序员宅基地

文章浏览阅读254次。Description给出一个长度为nnn的序列,定义操作f(x)f(x)f(x),0.50.50.5概率把f(x)=x−lowbit(x)f(x)=x-lowbit(x)f(x)=x−lowbit(x),0.50.50.5概率f(x)=x+lowbit(x)f(x)=x+lowbit(x)f(x)=x+lowbit(x),现在对这个序列做mmm次操作,操作有两种:1 L ..._rikka with lowbit

NSOperationQueue、NSRunLoop和线程安全_nsoperationqueue 卡主线程-程序员宅基地

文章浏览阅读550次。目前在 iOS 和 OS X 中有两套先进的同步 API 可供我们使用:NSOperation 和 GCD 。其中 GCD 是基于 C 的底层的 API ,而 NSOperation 则是 GCD 实现的 Objective-C API。 虽然 NSOperation 是基于 GCD 实现的, 但是并不意味着它是一个 GCD 的 “dumbed-down” 版本, 相反,我们可以用NSOperat_nsoperationqueue 卡主线程

目标跟踪算法五:MDNet: Learning Multi-Domain Convolutional Neural Networks for Visual Tracking_multi-domain spanning neural network-程序员宅基地

文章浏览阅读1.8w次,点赞3次,收藏34次。目标跟踪算法五:MDNet: Learning Multi-Domain Convolutional Neural Networks for Visual Tracking_multi-domain spanning neural network

HTML基础教程-程序员宅基地

文章浏览阅读98次。1简介1、什么是 HTML? 1.1标记语言 1.2标记标签2、HTML 标签 2.1由尖括号包围的关键词,比如 <html> 2.2成对出现,比如 <b> 和 </b> 2.3开始标签、结束标签3、HTML 文档 = 网页 3.1HTML 文档包..._览器会移除源代码中多余的空格和空

第2章-4 特殊a串数列求和 (20分)_7-7 特殊a串数列求和 (20 分)给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aa-程序员宅基地

文章浏览阅读178次。给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。输入格式:输入在一行中给出不超过9的正整数a和n。输出格式:在一行中按照“s = 对应的和”的格式输出。输入样例:2 3输出样例:s = 246AC代码a, n = input().split()n = int(n)num_list = [ int(a*i) for i in range(1,n+1) ]print( "s = {}".format(s._7-7 特殊a串数列求和 (20 分)给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++ +aa a(n个a)之和。

java数据结构(二叉树)-程序员宅基地

文章浏览阅读44次。Node节点: 1 public class Node { 2 public long data; 3 public String sData; 4 public Node leftChild; 5 public Node rightChild; 6 public Node(long data,String sData) { 7 this.data = d..._jdk中有现成的二叉树数据结构吗