用神經網路做的簡單的二分類

2021-08-13 02:43:44 字數 1869 閱讀 1361

這兩周學習了深度學習的基礎知識,大概看了下bp,cnn,rnn的基本原理和概念,又用了幾個小時時間(白天要上班只能晚上學習)簡單看了下keras文件,建立了乙個非常簡單的神經網路模型。

這個模型是簡單的二分類模型(小白中的小白),當輸入》25是輸出1,否則輸出0.

這裡是需要匯入的庫:

from keras.models import sequential

from keras.layers import dense,activation

from keras import regularizers

from keras.optimizers import sgd

from keras.models import load_model

import numpy as np

import pandas as pd

資料生成函式,生成樣本和標籤,資料量非常小:

def

datagererate

(x):

'''x,list;根據x產生x^2,x**2>25為1,<=25為0

返回sx,label,numpy格式'''

x_pow = list(map(lambda x:x**2,x))

data = pd.dataframe(x_pow,columns=['value'])

data_select = data['value']>25

data['label'] = data_select.values

return data['value'].values,data['label'].values

模型訓練和**:

def

train_and_test

(x_train,label,x_test):

''' x_train為樣本資料,label為樣本標籤,x_test為要**的樣本

'''model = sequential()

model.add(dense(32,input_dim=1)) #建立輸入層,一維資料

model.add(activation('relu')) #啟用函式採用relu

model.add(dense(32,b_regularizer=l2(0.001))) #第二層32個單元,對係數b進行正則化

model.add(dense(32))

model.add(activation('relu'))

model.add(dense(1)) #輸出層

model.add(activation('sigmoid'))

sgd = sgd(lr=0.01, decay=1e-5, momentum=0.9, nesterov=true) #採用隨機梯度下降引數

model.compile(optimizer=sgd,

loss='binary_crossentropy',

metrics=['accuracy'])

model.fit(x_train,label,nb_epoch=30,batch_size=5) #編譯

data_predict = model.predict_classes(x_test) #**

(m,n) = data_predict.shape

data_out = pd.dataframe(x_test,columns=['values'])

data_out['label'] = data_predict.reshape(n,m)[0]

return data_out #輸出資料和標籤

這個模型用於剛剛接觸深度學習或者keras的小白建立乙個直觀的感覺,深度學習的概念還是要好好看書學習。

用神經網路二分類人腦與電腦

如果乙個物件a,無論與b或c分類,分類的準確率都是50 則a為乙個具有智慧型的物件。用符號表示 a,b n m k 1,0 0,1 50 50 a,c n m k 1,0 0,1 50 50 a 智慧型體 上式的 表示a和b用乙個結構為n m k的網路分類,分類準確率為50 50 表明a與b邏輯上是...

基於神經網路的二分類問題

在之前的文章中,介紹了神經網路的概念和演算法思想,甚至給出了公式推導。但依然沒有掌握神經網路的精髓,於是打算進一步學習就在網上 了吳恩達大佬的 神經網路和深度學習 這門課程,覺得收穫很大。目前只學習了單個神經元的原理及應用,下面簡單總結一下。1.損失函式的定義 與之前介紹的單個神經元的工作原理不同之...

神經網路解決二分類問題

import tensorflow as tf from numpy.random import randomstate batch size 8 w1 tf.variable tf.random normal 2,3 stddev 1,seed 1 w2 tf.variable tf.random...