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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

经典案例鸢尾花分类, 在Keras中使用sklearn调参

發布時間:2024/9/30 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 经典案例鸢尾花分类, 在Keras中使用sklearn调参 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據集介紹

有5維數據:花萼長度,花萼寬度,花瓣長度,花瓣寬度,花的種類

花的種類
‘setosa’, ‘versicolor’, ‘virginica’

算例

第一步.包導入

import numpy as np import pandas as pd from keras .models import Sequential from keras.layers import Dense from keras.wrappers.scikit_learn import KerasClassifier from keras.utils import np_utils#one_hot from sklearn.model_selection import cross_val_score #交叉驗證 from sklearn.model_selection import KFold#K折計算 from sklearn.preprocessing import LabelEncoder#標簽處理 from keras .models import model_from_json #存儲模型

第二步.使用Pandas讀取鳶尾花數據集, 使用LabelEncoder對類別標簽進行編碼

#隨機種子設置 seed=13 np.random.seed(seed)#導入數據 df=pd.read_csv('iris.txt') X=df.values[:,0:4].astype(float)#df.values轉換為numpy型 Y=df.values[:,4]#類別是一個字符串encoder=LabelEncoder() Y_encoded=encoder.fit_transform(Y)#得到的是012 Y_onehot=np_utils.to_categorical(Y_encoded)#one_hot化

第三步.使用Keras創建一個用于鳶尾花分類識別的神經網絡

import numpy as np import pandas as pd from keras .models import Sequential from keras.layers import Dense from keras.wrappers.scikit_learn import KerasClassifier from keras.utils import np_utils#one_hot from sklearn.model_selection import cross_val_score #交叉驗證 from sklearn.model_selection import KFold#K折計算 from sklearn.preprocessing import LabelEncoder#標簽處理 from keras .models import model_from_json #存儲模型#隨機種子設置 seed=13 np.random.seed(seed)#導入數據 df=pd.read_csv('iris.txt') X=df.values[:,0:4].astype(float)#df.values轉換為numpy型 Y=df.values[:,4]#類別是一個字符串encoder=LabelEncoder() Y_encoded=encoder.fit_transform(Y)#得到的是012 Y_onehot=np_utils.to_categorical(Y_encoded)#one_hot化#定義一個神經網絡 def baseline_model():model=Sequential()model.add(Dense(7,input_dim=4,activation='tanh'))#神經元個數7個,輸入數據4維,激活函數tanhmodel.add(Dense(3,activation='softmax'))#輸出層,3個類別model.compile(loss='mean_squared_error',optimizer='adam',metrics=['accuracy'])#損失函數,編譯器,評價return modelestimator=KerasClassifier(build_fn=baseline_model,epochs=20,batch_size=1,verbose=1)#包裝成了機器學習模型 #評估系統 kfold=KFold(n_splits=10,shuffle=True,random_state=seed)#把數據打亂分成10份,每次選1份作為驗證集 result=cross_val_score(estimator,X,Y_onehot,cv=kfold)#交叉驗證print('accuracy of cross validlation, mean %.2f ,std %.2f'%(result.mean(),result.std()))#模型保存estimator.fit(X,Y_onehot) model_json=estimator.model.to_json() with open('model.json','w')as json_file:#保存結構,輸入層有幾個維度,輸出層幾個維度,激活函數是什么json_file.write(model_json)estimator.model.save_weights('model.h5')#權重存儲 print('saved model to disk')#導入模型做預測 json_file=open('model.json','r') loaded_model_json=json_file.read() json_file.close()loaded_model=model_from_json(loaded_model_json) loaded_model.load_weights('model.h5') print('已經從磁盤中讀入了模型')#預測 predicted=loaded_model.predict(X) print('這是概率'+str(predicted)) predicted_label=loaded_model.predict_classes() print('這是類別'+str(predicted_label))

第四步.訓練用于鳶尾花分類的神經網絡 解讀訓練輸出的日志 了解如何評價神經網絡的性能
訓練圖

結果圖

知識點總結
Scikit-Learn是一個功能齊全的通用機器學習庫,并提供在深度學習模型中有幫助的方法。
Keras類庫為深度學習模型提供了一個包裝類wrapper,將Keras的深度學習模型包裝成Scikit-Learn中的分類模型或回歸模型,以便于方便地使用Scikit-Learn中的方法和函數。
KerasClassifier(用于分類模型)

KerasRegression(用于回歸模型)

from keras.wrappers.scikit_learn import KerasClassifier

包裝成了機器學習模型

estimator=KerasClassifier(build_fn=baseline_model,epochs=20,batch_size=1,verbose=1)#包裝成了機器學習模型

機器學習模型可以做一系統調參,如網格搜索等,本文進行交叉驗證

作者:電氣工程的計算機萌新-余登武

總結

以上是生活随笔為你收集整理的经典案例鸢尾花分类, 在Keras中使用sklearn调参的全部內容,希望文章能夠幫你解決所遇到的問題。

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