欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)

 更新時(shí)間:2021年04月23日 11:25:32   作者:q琦一  
這篇文章主要介紹了python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下

手寫數(shù)字識(shí)別算法

import pandas as pd
import numpy as np
from sklearn.neural_network import MLPRegressor  #從sklearn的神經(jīng)網(wǎng)絡(luò)中引入多層感知器

data_tr = pd.read_csv('BPdata_tr.txt')  # 訓(xùn)練集樣本
data_te = pd.read_csv('BPdata_te.txt')  # 測(cè)試集樣本
X=np.array([[0.568928884039633],[0.379569493792951]]).reshape(1, -1)#預(yù)測(cè)單個(gè)樣本

#參數(shù):hidden_layer_sizes中間層的個(gè)數(shù)  activation激活函數(shù)默認(rèn)relu  f(x)= max(0,x)負(fù)值全部舍去,信號(hào)相應(yīng)正向傳播效果好
#random_state隨機(jī)種子,max_iter最大迭代次數(shù),即結(jié)束,learning_rate_init學(xué)習(xí)率,學(xué)習(xí)速度,步長(zhǎng)
model = MLPRegressor(hidden_layer_sizes=(10,), activation='relu',random_state=10, max_iter=8000, learning_rate_init=0.3)  # 構(gòu)建模型,調(diào)用sklearn實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)算法
model.fit(data_tr.iloc[:, :2], data_tr.iloc[:, 2])    # 模型訓(xùn)練(將輸入數(shù)據(jù)x,結(jié)果y放入多層感知器擬合建立模型) .iloc是按位置取數(shù)據(jù)
pre = model.predict(data_te.iloc[:, :2])              # 模型預(yù)測(cè)(測(cè)試集數(shù)據(jù)預(yù)測(cè),將實(shí)際結(jié)果與預(yù)測(cè)結(jié)果對(duì)比)

pre1 = model.predict(X)#預(yù)測(cè)單個(gè)樣本,實(shí)際值0.467753075712819
err = np.abs(pre - data_te.iloc[:, 2]).mean()# 模型預(yù)測(cè)誤差(|預(yù)測(cè)值-實(shí)際值|再求平均)

print("模型預(yù)測(cè)值:",pre,end='\n______________________________\n')
print('模型預(yù)測(cè)誤差:',err,end='\n++++++++++++++++++++++++++++++++\n')
print("單個(gè)樣本預(yù)測(cè)值:",pre1,end='\n++++++++++++++++++++++++++++++++\n')

#查看相關(guān)參數(shù)。
print('權(quán)重矩陣:','\n',model.coefs_) #list,length n_layers - 1,列表中的第i個(gè)元素表示對(duì)應(yīng)于層i的權(quán)重矩陣。
print('偏置矩陣:','\n',model.intercepts_) #list,length n_layers - 1,列表中的第i個(gè)元素表示對(duì)應(yīng)于層i + 1的偏置矢量。

在這里插入圖片描述

數(shù)字手寫識(shí)別系統(tǒng)

#數(shù)字手寫識(shí)別系統(tǒng),DBRHD和MNIST是數(shù)字手寫識(shí)別的數(shù)據(jù)集
import numpy as np  # 導(dǎo)入numpy工具包
from os import listdir  # 使用listdir模塊,用于訪問本地文件
from sklearn.neural_network import MLPClassifier #從sklearn的神經(jīng)網(wǎng)絡(luò)中引入多層感知器

#自定義函數(shù),將圖片轉(zhuǎn)換成向量
def img2vector(fileName):
    retMat = np.zeros([1024], int)  # 定義返回的矩陣,大小為1*1024
    fr = open(fileName)  # 打開包含32*32大小的數(shù)字文件
    lines = fr.readlines()  # 讀取文件的所有行
    for i in range(32):  # 遍歷文件所有行
        for j in range(32):  # 并將01數(shù)字存放在retMat中
            retMat[i * 32 + j] = lines[i][j]
    return retMat

#自定義函數(shù),獲取數(shù)據(jù)集
def readDataSet(path):
    fileList = listdir(path)  # 獲取文件夾下的所有文件
    numFiles = len(fileList)  # 統(tǒng)計(jì)需要讀取的文件的數(shù)目
    dataSet = np.zeros([numFiles, 1024], int)  # 用于存放所有的數(shù)字文件juzheng
    hwLabels = np.zeros([numFiles, 10])  # 用于存放對(duì)應(yīng)的one-hot標(biāo)簽(每個(gè)文件都對(duì)應(yīng)一個(gè)10列的矩陣)
    for i in range(numFiles):  # 遍歷所有的文件
        filePath = fileList[i]  # 獲取文件名稱/路徑
        digit = int(filePath.split('_')[0])  # 通過文件名獲取標(biāo)簽,split返回分割后的字符串列表
        hwLabels[i][digit] = 1.0  # 將對(duì)應(yīng)的one-hot標(biāo)簽置1 .one-hot編碼,又稱獨(dú)熱編碼、一位有效編碼.one-hot向量將類別變量轉(zhuǎn)換為機(jī)器學(xué)習(xí)算法易于利用的一種形式的過程,這個(gè)向量的表示為一項(xiàng)屬性的特征向量,也就是同一時(shí)間只有一個(gè)激活點(diǎn)(不為0),這個(gè)向量只有一個(gè)特征是不為0的,其他都是0,特別稀疏。
        dataSet[i] = img2vector(path + '/' + filePath)  # 讀取文件內(nèi)容
    return dataSet, hwLabels


#讀取訓(xùn)練數(shù)據(jù),并訓(xùn)練模型
train_dataSet, train_hwLabels = readDataSet('trainingDigits')

#參數(shù):hidden_layer_sizes中間層的個(gè)數(shù),activation激活函數(shù) logistic:f(x)=1/(1+exp(-x))將值映射在一個(gè)0~1的范圍內(nèi)。
#solver權(quán)重優(yōu)化的求解器adam默認(rèn),用于較大的數(shù)據(jù)集,lbfgs用于小型的數(shù)據(jù)集收斂的更快效果更好。max_iter迭代次數(shù)越多越準(zhǔn)確
clf = MLPClassifier(hidden_layer_sizes=(50,),activation='logistic', solver='adam',learning_rate_init=0.001, max_iter=700)
clf.fit(train_dataSet, train_hwLabels)#數(shù)據(jù)集,標(biāo)簽,擬合

# 讀取測(cè)試數(shù)據(jù)對(duì)測(cè)試集進(jìn)行預(yù)測(cè)
dataSet, hwLabels = readDataSet('testDigits')
res = clf.predict(dataSet) #預(yù)測(cè)結(jié)果是標(biāo)簽([numFiles, 10]的矩陣) 
print("測(cè)試數(shù)據(jù)",dataSet,'\n___________________________________\n')
print("測(cè)試標(biāo)簽",hwLabels,'\n++++++++++++++++++++++++++++++++++++++++\n')
print("測(cè)試結(jié)果",res)


error_num = 0  # 統(tǒng)計(jì)預(yù)測(cè)錯(cuò)誤的數(shù)目
num = len(dataSet)  # 測(cè)試集的數(shù)目
for i in range(num):  # 遍歷預(yù)測(cè)結(jié)果
    # 比較長(zhǎng)度為10的數(shù)組,返回包含01的數(shù)組,0為不同,1為相同
    # 若預(yù)測(cè)結(jié)果與真實(shí)結(jié)果相同,則10個(gè)數(shù)字全為1,否則不全為1
    if np.sum(res[i] == hwLabels[i]) < 10:
        error_num += 1
print("Total num:", num, " Wrong num:",error_num, "  WrongRate:", error_num / float(num))

在這里插入圖片描述

可視化MNIST是數(shù)字手寫識(shí)別的數(shù)據(jù)集

from keras.datasets import mnist#導(dǎo)入數(shù)字手寫識(shí)別系統(tǒng)的數(shù)據(jù)集
import matplotlib.pyplot as plt

(X_train, y_train), (X_test, y_test) = mnist.load_data()
#以2*2(2行2列)圖的方式展現(xiàn)
plt.subplot(221)
plt.imshow(X_train[1], cmap=plt.get_cmap('gray_r'))#白底黑字
plt.subplot(222)
plt.imshow(X_train[2], cmap=plt.get_cmap('gray'))#黑底白字
plt.subplot(223)
plt.imshow(X_train[3], cmap=plt.get_cmap('gray'))
plt.subplot(224)
plt.imshow(X_train[4], cmap=plt.get_cmap('gray'))
# show the plot
plt.show()

在這里插入圖片描述

到此這篇關(guān)于python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)的文章就介紹到這了,更多相關(guān)python神經(jīng)網(wǎng)絡(luò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python技能之?dāng)?shù)據(jù)導(dǎo)出excel的實(shí)例代碼

    python技能之?dāng)?shù)據(jù)導(dǎo)出excel的實(shí)例代碼

    本篇文章主要介紹了python技能之導(dǎo)出excel的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Python使用Rich?type和TinyDB構(gòu)建聯(lián)系人通訊錄

    Python使用Rich?type和TinyDB構(gòu)建聯(lián)系人通訊錄

    這篇文章主要為大家介紹了Python使用Rich?type和TinyDB構(gòu)建聯(lián)系人通訊錄應(yīng)用程序,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • numpy array找出符合條件的數(shù)并賦值的示例代碼

    numpy array找出符合條件的數(shù)并賦值的示例代碼

    本文主要介紹了numpy array找出符合條件的數(shù)并賦值的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • python反射機(jī)制內(nèi)置函數(shù)及場(chǎng)景構(gòu)造詳解

    python反射機(jī)制內(nèi)置函數(shù)及場(chǎng)景構(gòu)造詳解

    這篇文章主要為大家介紹了python反射機(jī)制內(nèi)置函數(shù)及場(chǎng)景構(gòu)造示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 如何在Pycharm中制作自己的爬蟲代碼模板

    如何在Pycharm中制作自己的爬蟲代碼模板

    當(dāng)有很多個(gè)個(gè)網(wǎng)站想要爬時(shí),每個(gè)爬蟲的代碼不一樣,但有某種聯(lián)系,這個(gè)時(shí)候可以抽出一部分通用的代碼制成模板,減少代碼工作量。本文將具體介紹如何實(shí)現(xiàn)這一模板,需要的可以參考一下
    2021-12-12
  • Django返回json數(shù)據(jù)用法示例

    Django返回json數(shù)據(jù)用法示例

    這篇文章主要介紹了Django返回json數(shù)據(jù)用法,結(jié)合實(shí)例形式分析了jQuery通過前端ajax發(fā)送get請(qǐng)求及后臺(tái)使用Django接收GET請(qǐng)求并返回處理的json數(shù)據(jù)相關(guān)技巧,需要的朋友可以參考下
    2016-09-09
  • 基于Python模擬瀏覽器發(fā)送http請(qǐng)求

    基于Python模擬瀏覽器發(fā)送http請(qǐng)求

    這篇文章主要介紹了基于Python模擬瀏覽器發(fā)送http請(qǐng)求,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 關(guān)于python中readlines函數(shù)的參數(shù)hint的相關(guān)知識(shí)總結(jié)

    關(guān)于python中readlines函數(shù)的參數(shù)hint的相關(guān)知識(shí)總結(jié)

    今天給大家?guī)淼氖顷P(guān)于Python函數(shù)的相關(guān)知識(shí),文章圍繞著python中readlines函數(shù)的參數(shù)hint展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Python實(shí)現(xiàn)常見坐標(biāo)系的相互轉(zhuǎn)換

    Python實(shí)現(xiàn)常見坐標(biāo)系的相互轉(zhuǎn)換

    WGS84坐標(biāo)系、GCJ02坐標(biāo)系、BD09坐標(biāo)系和Web?墨卡托投影坐標(biāo)系是我們常見的四個(gè)坐標(biāo)系。這篇文章為大家整理了這四個(gè)坐標(biāo)系之間相互轉(zhuǎn)換的方法,需要的可以參考一下
    2023-02-02
  • Python pip 安裝與使用(安裝、更新、刪除)

    Python pip 安裝與使用(安裝、更新、刪除)

    pip 是 Python 包管理工具,該工具提供了對(duì)Python 包的查找、下載、安裝、卸載的功能,需要的朋友可以參考下
    2019-10-10

最新評(píng)論