02 keras實現線性回歸

2021-10-11 00:26:43 字數 2080 閱讀 9414

import keras

import numpy as np

import matplotlib.pyplot as plt

%matplotlib inline #將顯示

###生成隨機資料

x = np.linspace(0, 100, 30) #0-100生成30個數字

y = 3*x +7 + np.random.randn(30)

###分布情況

plt.scatter(x,y) #檢視資料趨勢

###建立模型

model = keras.sequential() #順序模型

form keras import layers #引用層

model.add(layers.dense(1,input_dim=1) )#dense(輸出幾個單元,輸入是幾維)

model.summary() #檢視模型

#編譯模型

model.compile(optimizer=『adam』, #優化函式

loss=『mse』 #優化什麼

)#訓練模型

model.fit(x, y, epochs=30) #epochs=把所有資料訓練多少遍 把所有資料訓練30遍

#**model.predict(x)

plt.scatter(x,y,c=『r』)

plt.plot(x, model.predict(x))

model.predict([150]) #**當x=150時的值

import pandas as pd

data = pd.read_csv(『c:』) #讀取資料

x = data[data.columns[1:-1]] #,快速取值。取第二列到倒數第二列

y= data.iloc[:, -1] #也是取值,取最後一列

pandas 取值方法彙總

model = keras.sequential()

model.add(layers.dense(1,imput_dim=3)) # y_pred =w1t1 + w2t2 + w3*t3 +b

model.compile(optimizer=』 adam』,

loss=『mes』

)model.fit(x,y,epochs=30)

model.predict(pd.dataframe([[300,0,0]])) #**x1=300 x2=0 x3=0時的輸出

啟用函式 sigmoid 函式

邏輯回歸損失函式

平方差所懲罰的是與損失為同一數量級的情形

對於分類問題,我們最好使用交叉熵損失函式會更有效,交叉熵會輸出乙個更大的「損失」

交叉熵刻畫的是實際輸出(概率)與期望輸出(概率)的距離,也就是交叉熵的值越小,兩個概率分布就越接近。

二元交叉熵:函式: binary_crossentropy

多分類: softmax 交叉熵 函式:categorical_crossentropy 和 sparse_categorical_crossentropy

獨熱編碼

pd.get_dummies(data.name)

softmax分類

def model:

model = keras.sequntial()

model.add(layers.dense(3,input_dim=4, activation=『softmax』))

model.compile(optimizer=『adam』,

loss=『categorical_crossentropy』, #獨熱編碼時用此loss 函式

metrics=[『acc』]

)順序編碼:

dic=

def model:

model = keras.sequntial()

model.add(layers.dense(3,input_dim=4, activation=『softmax』))

model.compile(optimizer=『adam』,

loss=『sparse_categorical_crossentropy』, #順序編碼時用此loss 函式

metrics=[『acc』]

)

Keras 實現非線性回歸

import keras import numpy as np import matplotlib.pyplot as plt sequential按順序構成的模型 from keras.models import sequential dense全連線層 from keras.layers imp...

keras非線性回歸實現

這次非線性回歸實現,相比較於線性回歸,多新增了隱藏層層數,並且需要使用不同型別的啟用函式來進行適應非線性,分別使用了tanh和relu來顯示結果 非線性回歸 import keras import numpy as np import matplotlib.pyplot as plt 按順序構成的模...

Keras 簡單線性回歸

整體 視覺化管理 import numpy as np import pandas as pd import tensorflow as tf import matplotlib.pyplot as plt from tensorflow.keras.layers import dense from...