日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

鲍鱼数据集数据分析和可视化,线性回归预测鲍鱼年龄(基于TensorFlow)

發布時間:2023/12/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 鲍鱼数据集数据分析和可视化,线性回归预测鲍鱼年龄(基于TensorFlow) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:數據集描述

Name?? ??? ?Data Type?? ?Meas.?? ?Description
?? ?----?? ??? ?---------?? ?-----?? ?-----------
?? ?Sex?? ??? ?nominal?? ??? ??? ?M, F, and I (infant)
?? ?Length?? ??? ?continuous?? ?mm?? ?Longest shell measurement
?? ?Diameter?? ?continuous?? ?mm?? ?perpendicular to length
?? ?Height?? ??? ?continuous?? ?mm?? ?with meat in shell
?? ?Whole weight?? ?continuous?? ?grams?? ?whole abalone
?? ?Shucked weight?? ?continuous?? ?grams?? ?weight of meat
?? ?Viscera weight?? ?continuous?? ?grams?? ?gut weight (after bleeding)
?? ?Shell weight?? ?continuous?? ?grams?? ?after being dried
?? ?Rings?? ??? ?integer?? ??? ??? ?+1.5 gives the age in years

共9個屬性,最后一個屬性(Rings)代表鮑魚的年輪,和樹木一樣,一年鮑魚生長一出一個年輪

?

數據分析:

? ? 1.導入相關的第三方庫:

? ? 我在ipython上進行的,所以添加魔法函數%matplotlib inline讓繪圖顯示

%matplotlib inline import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns

? ? 2.讀入數據

? ? ? ? 利用pandas讀取數據和分析數據

data = pd.read_csv('dataset.data')

? ? ? ? 使用.info()方法查看數據集的總體信息

? ?data.info()

可以看到,共有4176條數據,9個特征,沒有缺失值,除了年輪數據為int64,其他均為float64?

因為原文件中,沒有特征項的名稱,我們加上特征名稱,方便后續操作

data.columns = ['Sex', 'Length', 'Diameter', 'Height','Whole weight', 'Shucked weight', 'Viscera weight','Shell weight', 'Rings']

?下面是添加了列索引后的前五行數據:

?

下面看看數據根據性別分類的數據分布:

可以看到,鮑魚性別共有三個分類(M,F,I),分別表示(雄性,雌性,未成年)?

不同性別所占的數據為:M:1527,I:1342,F:1307

使用餅圖直觀的表示,不同性別的分布:

? ? ? ? 獲取類別數:

n = len(data['Sex'].unique())

? ? ? ? 獲得類別標簽:

labels = [data['Sex'].unique()[i] for i in range(n)]

? ? ? ? ?獲得每個標簽的數據個數:

fraces = [data['Sex'].value_counts()[i] for i in range(n)]

? ? ? ? ?繪制餅圖:

explode = [0.1, 0, 0] plt.rcParams['font.sans-serif'] = ['SimHei'] plt.title("鮑魚性別占比") wedges, texts, autotexts = plt.pie(x=fraces, labels=labels, autopct='%0f%%',explode=explode,shadow=True) plt.legend(wedges, labels, fontsize=12, title="性別",loc="center left", bbox_to_anchor=(0.91, 0, 0.3, 1))

?

?

針對其他的離散數據,分別查看他們的概率分布密度圖像:

分別使用核密度估計圖和小提琴圖:

sns.kdeplot(data_length)

?

?

sns.violinplot(data_length)

?

?

根據性別合并查詢,查看不同性別的數據分布:

a = data.drop('Rings', axis=1).groupby('Sex').mean()

?

?

繪制分組條形圖:

a.plot(kind='bar', grid=False) plt.title('不同性別鮑魚特征均值') plt.legend(loc="center left", bbox_to_anchor = (1, 0.5))

?構建回歸模型:

? ? ? ? ?導入需要的庫:

import tensorflow as tf import numpy as np import pandas as pd from sklearn.utils import shuffle

?因為性別標簽的數據是離散的,所以將離散數據轉化為數值型數據:

size_mapping = {'F': 0.1,'M': 0.5,'I': 0.9 } df['Sex'] = df['Sex'].map(size_mapping)

數據歸一化:

data = np.array(df.values) n = len(df.columns) for i in range(n-1):data[:,i] = data[:,i]/(data[:,i].max() - data[:,i].min())

數據分為x(輸入特征),y(預測數據)

x_data = data[:,:n-1] y_data = data[:,-1]

定義特征數據和標簽數據的占位符

x = tf.placeholder(tf.float32, [None, n-1], name='x') y = tf.placeholder(tf.float32, [None, 1], name='y')

?定義模型結構:

with tf.name_scope("model"):w = tf.Variable(tf.random_normal([n-1, 1], stddev = 0.01), name = "w")b = tf.Variable(1.0, name = "b")def model(x, w, b):return tf.matmul(x, w) + bpred = model(x, w, b)

超參數:

train_epochs = 50 learning_rate = 0.01

定義均方損失函數:

with tf.name_scope("LossFunction"):loss_function = tf.reduce_mean(tf.pow(y-pred, 2))

創建梯度下降優化器:

optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss_function) sess = tf.Session() init = tf.global_variables_initializer()

記錄日志文件,方便后續tensorBoard可視化:

logdir = r'C:\Users\yuzhu\Desktop\鮑魚數據集\log'sum_loss_op = tf.summary.scalar("loss", loss_function)merged = tf.summary.merge_all()sess.run(init)

創建摘要文件寫入器(FileWriter):

writer = tf.summary.FileWriter(logdir, sess.graph)

訓練模型:

loss_list = [] loss_list2 = [] for epoch in range(train_epochs):loss_sum = 0.0for xs,ys in zip(x_data, y_data):xs = xs.reshape(1, n-1)ys = ys.reshape(1, 1)_, summary_str, loss = sess.run([optimizer, sum_loss_op, loss_function], feed_dict = {x:xs, y:ys})writer.add_summary(summary_str, epoch)loss_sum = loss_sum + lossloss_list2.append(loss)xvalues, yvalues = shuffle(x_data, y_data)b0temp = b.eval(session=sess)w0temp = w.eval(session=sess)loss_average = loss_sum/len(y_data)loss_list.append(loss_average)print("epoch=", epoch+1, "loss=", loss_average, "b=", b0temp, "w=", w0temp)

繪制損失值的變化情況:

plt.plot(loss_list)

?

plt.plot(loss_list2)

?tensorBoard可視化結果(損失值):

?

總結

以上是生活随笔為你收集整理的鲍鱼数据集数据分析和可视化,线性回归预测鲍鱼年龄(基于TensorFlow)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩亚洲综合 | 福利小视频在线 | 午夜影视av| 欧美h视频在线观看 | 国产精品探花一区二区三区 | 台湾a级片| www婷婷av久久久影片 | 欧美偷拍视频 | 三级全黄做爰在线观看 | 日韩欧美一区二区视频 | 在线色av| 色综合久久综合 | 国产大片一区 | 1区2区视频| 99久久精品一区 | 免费在线视频一区 | 天堂在线观看中文字幕 | 女人脱了内裤趴开腿让男躁 | 国产日韩中文字幕 | 加勒比综合在线 | 久久理论 | 日本性爱视频在线观看 | 三级成人在线 | 国产又粗又大又爽视频 | 国产成人免费看 | av55 | 免费高清av在线看 | 网友自拍视频 | 欧美日本成人 | 丁香花完整视频在线观看 | 国产精品久久久久久在线观看 | 天天插天天操天天干 | 欧美午夜在线观看 | 亚洲一区视频在线播放 | 亚洲精品中文字幕乱码三区 | 国产精品探花一区二区在线观看 | 国产伦精品一区 | 天天爽av | 狠狠爱天天干 | 天天干天天干 | 色一情一区二区三区 | 98堂 最新网名 | 日日干综合 | 婷婷精品在线 | 欧美午夜精品理论片a级按摩 | 国产传媒视频在线观看 | 亚洲精品一区二区三区蜜臀 | 日本一级黄色 | 日韩毛片在线免费观看 | 黄色成人免费观看 | 亚洲精品蜜桃 | 天降女子在线 | 日韩伦理视频 | 亚洲国产精品国自产拍av | 欧美裸体精品 | 米奇狠狠干| 狠久久 | 天堂网站 | 毛片黄色片| 国产主播在线观看 | 亚洲福利av | 精品视频久久久久久 | 国产精品爽爽久久久久久 | 国内视频自拍 | 日本欧美一区 | 国产黑丝在线观看 | 中文在线中文资源 | 亚洲产国偷v产偷v自拍涩爱 | 在线视频第一页 | h视频在线免费观看 | 国产在线日韩 | 日韩女优一区 | 国产欧美日韩综合精品一区 | 一区二区三区成人 | 欧美熟妇久久久久 | 日韩欧美一区二区三区视频 | 国产手机精品视频 | 亚洲成人精品av | 欧美成人一级片 | 青青草娱乐视频 | 欧美日韩高清 | 九九九视频在线观看 | 亚洲一区二区三区四区在线播放 | 白浆影院| 羞羞的视频在线观看 | 色姑娘久 | 强行糟蹋人妻hd中文 | 涩色视频 | 国产人妻精品一区二区三 | 曰批又黄又爽免费视频 | 99精品偷自拍 | 一区二区三区在线观看av | 麻豆国产av超爽剧情系列 | 奇米影视狠狠干 | 亚洲一区欧美二区 | 波多野结衣丝袜 | 久久午夜视频 | 极品少妇在线 | 日本裸体xx少妇18在线 | 国产欧美日韩激情 |