#1.載入tensorflow(含keras)等函數庫 import numpy as np import pandas as pd from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense #2.指定亂數種子參數=10(可自行指定不同的參數種子值) #目的:讓每次的執行結果,可以在相同亂數起始值下,進行比較 np.random.seed(10) #3.載入糖尿病資料集(讀入自己電腦硬碟的csv檔案) #在colaboratory的python讀入自己的個人電腦硬碟裡的diabetes.csv ####################################上傳diabetes.csv from google.colab import files uploaded = files.upload() for fn in uploaded.keys(): print('User uploaded file "{name}" with length {length} bytes'.format( name=fn, length=len(uploaded[fn]))) # 確認diabetes.csv是否已上載 !ls *.* -l ########################## #4.把csv檔案讀入成dataframe結構資料(use Pandas to read diabetes.csv) df = pd.read_csv("./diabetes.csv") #5.df.values指令,可以把dataframe轉成Numppy陣列資料(dataset) dataset = df.values #6.函數random.shuffle(dataset),可以把dataset陣列,打亂資料次序,成隨機次序(使用亂數打亂資料) np.random.shuffle(dataset) #7.將資料分割成輸入的訓練資料X,和標籤資料Y #特徵資料集 = X = 前8個欄位(0~7) = 訓練資料用 #標籤資料集 = Y = 第9個欄位(8) = 目標值 X = dataset[:, 0:8] Y = dataset[:, 8] #8.定義模型(加入三層網絡) model = Sequential() model.add(Dense(10, input_shape=(8,), activation="relu")) model.add(Dense(8, activation="relu")) model.add(Dense(1, activation="sigmoid")) #9.顯示神經網絡模型的摘要資訊 model.summary() #10.編譯模型 #目的:把上面keras建立好的四層神經網絡,編譯成低階的tensorflow計算圖
model.compile(loss="binary_crossentropy", optimizer="sgd", metrics=["accuracy"]) #11.訓練模型 model.fit(X, Y, epochs=150, batch_size=10) #12.評估模型的效能 loss, accuracy = model.evaluate(X, Y) #13.印出模型的準確度 print("準確度 = {:.2f}".format(accuracy))