您好,登錄后才能下訂單哦!
這篇文章主要介紹“基于Libra的卷積神經(jīng)網(wǎng)絡(luò)怎么實現(xiàn)”,在日常操作中,相信很多人在基于Libra的卷積神經(jīng)網(wǎng)絡(luò)怎么實現(xiàn)問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”基于Libra的卷積神經(jīng)網(wǎng)絡(luò)怎么實現(xiàn)”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
我使用了Kaggle數(shù)據(jù)集來預(yù)測信用卡欺詐。數(shù)據(jù)已經(jīng)經(jīng)過主成分分析,因此與原始數(shù)據(jù)相比,它現(xiàn)在被簡化為更小維的數(shù)據(jù)。
在解決這個問題時,需要遵循一種系統(tǒng)的方法。一般來說,你將遵循第一段中提到的順序。但有了Libra,你就不用擔(dān)心了。
此數(shù)據(jù)中的大多數(shù)交易在時間上是非欺詐性的(99.83%),而欺詐性交易在數(shù)據(jù)集中發(fā)生的時間(0.17%)。這意味著數(shù)據(jù)是高度不平衡的。讓我們看看Libra對數(shù)據(jù)的預(yù)處理和結(jié)果。
pip install -U libra
from libra import client
一切都是圍繞client構(gòu)建的。你可以對它調(diào)用不同的查詢,所有的內(nèi)容都將存儲在對象的models字段下。
我們在client對象中傳遞文件的位置,并將其命名為newClient?,F(xiàn)在要訪問各種查詢,請參閱文檔。
我用的是決策樹。例如,預(yù)測房屋價值中位數(shù),或估計住戶數(shù)量。否則,該代碼應(yīng)與數(shù)據(jù)集中的列相對應(yīng)。Libra會自動檢測到目標列,但為了確保它選擇了正確的列,我已經(jīng)傳遞了目標列的名稱。
newClient = client('creditcard.csv') newClient.decision_tree_query('Class')
只需兩行代碼,我們就得到了大約0.99的分數(shù),這是我們能得到的最好成績。如果你檢查其他人的成功,你會發(fā)現(xiàn)只有少數(shù)人獲得了0.99的準確率,他們花了數(shù)小時來預(yù)處理數(shù)據(jù)并為其編寫代碼。
在這種情況下,Libra為你節(jié)省了很多時間,給你最好的結(jié)果。Libra使用智能預(yù)處理,這樣你就不需要自己去預(yù)處理數(shù)據(jù)了。
newClient.analyze()為所有分類問題創(chuàng)建混淆矩陣和ROC曲線。它還計算召回率,精確度,f1和f2分數(shù)。
newClient.analyze()
newClient.info()返回所有鍵,表示為數(shù)據(jù)集生成的每種數(shù)據(jù)類別。
newClient.info()
newClient.model() 返回該模型的字典。它包括從準確度,精確度,召回率,F(xiàn)1分數(shù)到所有的預(yù)處理技術(shù)。對于那些已經(jīng)了解這些概念并能夠編寫代碼的人來說,這會更有幫助。非技術(shù)用戶不必為此擔(dān)心。
newClient.model()
newClient.model()返回字典,如果要訪問模型,則可以直接使用newClient.model()['model']
newClient.model()['model']
在colab Notebook使用下面的代碼下載石頭剪刀布數(shù)據(jù)集。我本可以直接向你展示使用Libra創(chuàng)建CNN的代碼,但是我想創(chuàng)建一個例子,你可以自己在colab Notebook中嘗試,以便更好地理解。你不需要擔(dān)心下面的代碼。
!wget --no-check-certificate \ https://storage.googleapis.com/laurencemoroney-blog.appspot.com/rps.zip \ -O /tmp/rps.zip !wget --no-check-certificate \ https://storage.googleapis.com/laurencemoroney-blog.appspot.com/rps-test-set.zip \ -O /tmp/rps-test-set.zip
使用下面的代碼提取下載的文件。
import os import zipfile local_zip = '/tmp/rps.zip' zip_ref = zipfile.ZipFile(local_zip, 'r') zip_ref.extractall('/tmp/') zip_ref.close() local_zip = '/tmp/rps-test-set.zip' zip_ref = zipfile.ZipFile(local_zip, 'r') zip_ref.extractall('/tmp/') zip_ref.close()
我們用下面的代碼創(chuàng)建文件夾,并將提取的圖像放入其中。
rock_dir = os.path.join('/tmp/rps/rock') paper_dir = os.path.join('/tmp/rps/paper') scissors_dir = os.path.join('/tmp/rps/scissors') print('total training rock images:', len(os.listdir(rock_dir))) print('total training paper images:', len(os.listdir(paper_dir))) print('total training scissors images:', len(os.listdir(scissors_dir))) rock_files = os.listdir(rock_dir) print(rock_files[:10]) paper_files = os.listdir(paper_dir) print(paper_files[:10]) scissors_files = os.listdir(scissors_dir) print(scissors_files[:10])
下圖顯示了有關(guān)數(shù)據(jù)集的信息
使用下面的代碼,你可以創(chuàng)建CNN。數(shù)據(jù)將通過縮放、剪切、翻轉(zhuǎn)和重新縮放自動增加。然后選擇最佳的圖像大小。你還將注意到每個類中的圖像數(shù)量以及與之關(guān)聯(lián)的類的數(shù)量。最后,還要觀察訓(xùn)練精度和測試精度。
你還可以在convolutional_query內(nèi)部傳遞read_mode超參數(shù),在其中你可以指定讀取模式。允許有三種讀取模式。我將逐一描述它們。默認情況下,**read_mode=distinguisher()**自動檢測數(shù)據(jù)類型。允許的三種讀取模式是:
目錄由“training_set”和“testing_set”文件夾組成,這兩個文件夾都包含帶有圖像的分類文件夾。
目錄由包含圖像的分類文件夾組成。
目錄由圖像文件夾和包含圖像列的CSV文件組成。
newClient = client('/tmp/rps') newClient.convolutional_query("Please classify my images")
我使用垃圾郵件分類數(shù)據(jù)集來解決這個問題。
鏈接:https://www.kaggle.com/team-ai/spam-text-message-classification
new_client = client('SPAM text message 20170820 - Data.csv') new_client.text_classification_query('sentiment') new_client.classify_text('new text to classify')
new_client.classify_text()將對其中輸入的文本進行分類。在上面的輸出中,你可以看到它將我的文本分類為“ham”。
我使用商場客戶劃分數(shù)據(jù)來解決這個問題:https://www.kaggle.com/vjchoudhary7/customer-segmentation-tutorial-in-python
Libra將創(chuàng)建一個K均值聚類模型,并將確定最佳簇中心,優(yōu)化準確度,以及最佳聚類數(shù)。
在本節(jié)中,我將使用神經(jīng)網(wǎng)絡(luò)查詢進行分類。為此,我使用了一個私人數(shù)據(jù)集來預(yù)測大腦信號的行為。讓我們檢查一下它在那個數(shù)據(jù)集上的執(zhí)行情況。
new_client = client('Mood_classification.csv') new_client.neural_network_query('Predict the behavior')
從上面的代碼中,你可以注意到模型使用的初始層數(shù)是3。然后,它還測試了不同層數(shù)的精度,這些層數(shù)根據(jù)前一層的性能而變化。
它可以預(yù)測找到的最佳層數(shù)以及訓(xùn)練和測試的準確性??磥砦倚枰獮槲业臄?shù)據(jù)集收集更多的數(shù)據(jù)。
你可以用new_client.model()[‘model’]訪問模型,并可以使用Keras的summary()函數(shù)獲取神經(jīng)網(wǎng)絡(luò)模型的摘要。
new_client.model()['model'].summary()
到此,關(guān)于“基于Libra的卷積神經(jīng)網(wǎng)絡(luò)怎么實現(xiàn)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。