整體**
視覺化管理
import numpy as np
import pandas as pd
import tensorflow as tf
import matplotlib.pyplot as plt
from tensorflow.keras.layers import dense
from tensorflow.keras.models import sequential
from sklearn.model_selection import train_test_split
x = np.array([50
,30,15
,40,55
,20,45
,10,60
,25])
y = np.array(
[5.9
,4.6
,2.7
,4.8
,6.5
,3.6
,5.1
,2.0
,6.3
,3.8
])
使用train_test_split
劃分資料
test_size
:劃分出來的測試集佔總資料集的比例
shuffle
:是否在劃分前將資料順序打亂
random_state
:shuffle的隨機種子
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=
0.3,shuffle=
true
,random_state=
23)
模型選用sequential
用tf.keras.layers.dense
進行全連線操作
input_dim
向量的維度,如果是第乙個全連線層,需要設定輸入層的大小
units
全連線層神經元個數
activation
啟用函式,如果不設定,就表示不使用啟用函式
name
model = sequential(
)model.add(dense(input_dim=
1,units=
1,name=
'dense'
))
用tf.keras.sequential.compile
進行模型設定
loss
損失函式
optimizer
優化器
model.
compile
(loss=
'mse'
,optimizer=tf.keras.optimizers.sgd(learning_rate=1e-
5))
用tf.keras.sequential.fit
進行模型設定
batch_size
單次更新大小
epochs
訓練次數
validation_split
驗證集佔訓練集的比例
可以返回乙個history物件,記錄每一輪訓練集和驗證集的損失函式值和評價指標
history = model.fit(x=x_train,y=y_train,batch_size=
2,epochs=
100,validation_split=
0.2)
用tf.keras.sequential.evaluate
進行模型設定
loss = model.evaluate(x=x_test,y=y_test)
用tf.keras.sequential.predict
進行模型設定
y_test_pred = model.predict(x=x_test)
import numpy as np
import pandans as pd
import matplotlib as plt
from tensorflow.keras.layers import dense
from tensorflow.keras.models import sequential
from sklearn.model_selection import train_test_split
x = np.array[50,
30,15,
40,55,
20,45,
10,60,
25]y = np.array[
5.9,
4.6,
2.7,
4.8,
6.5,
3.6,
5.1,
2.0,
6.3,
3.8]
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=
0.3,shuffle=
true,random_state=23)
model = sequential(
)model.add(dense(input_dim=
1,units=
1,name=
'dense'))
model.
compile
(loss=
'mse'
,optimizer=tf.keras.optimizers.sgd(learning_rate=1e-
5))history = model.fit(x=x_train,y=y_train,batch_size=
2,epochs=
100,validation_split=
0.2)
loss = model.evaluate(x=x_test,y=y_test)
y_test_pred = model.predict(x=x_test)
#畫散點圖
plt.scatter(x,y)
#顯示網格
plt.grid('')
#給橫座標命名
plt.xlabel(
'area'
)#給縱座標命名
plt.ylabel(
'price'
)#輸出
plt.show(
)
#在設定模型結束後,檢視模型輸出
model.summary(
)
#在訓練模型結束後,檢視loss的變化趨勢
pd.dataframe(history.history)
.plot(
)plt.xlabel(
'epoch'
)plt.show(
)
#在驗證模型結束後,檢視損失值
print
(loss)
#在**模型結束後,檢視**值
print
(y_test_pred)
plt.scatter(x_test,y_test,color=
'g',label=
'test'
)plt.scatter(x_train,y_train,color=
'b',label=
'train'
)plt.plot(x_test,y_test_pred,color=
'r',label=
'predict'
)plt.legend(
)plt.show(
)
#在**模型結束後,檢視**值
model.predict(np.array([35
]))
#在**模型結束後,檢視**值
model.layers[0]
.get_weights(
)
簡單線性回歸
真實值 y theta x varepsilon 值 hat theta x varepsilon 為誤差 項,服從 均值為0 方差為 為誤差項,服從均值為0,方差為 為誤差項,服 從均值為 0,方差 為 sigma 的高斯分布。已知若干樣本,可以得到若干 varepsilon 值,根 據極大似 然...
簡單線性回歸
資料預處理 data student data 1 刪除缺失值 lm data na.omit data 散點圖 plot height,weight,data data,main scatter plot col 1,pch col為顏色,pch為形狀 箱線圖 boxplot height wei...
2 1 簡單線性回歸
使用一種基於自變數 x 來 因變數 y 的方法,假設這兩個變數是線性相關的,因此我們嘗試尋找一種根據特徵或自變數 x 的線性函式來精確 響應值 y import pandas as pd import numpy as np import matplotlib.pyplot as plt datas...