首先,本文還是選用python裡面自帶的digits資料集
from sklearn.datasets import load_digits
digits=load_digits()
#資料標準化
from sklearn.preprocessing import standardscaler
scaler=standardscaler()
scaler.fit(digits.data)
x_scaled=scaler.transform(digits.data)
將資料和類別分別賦予x,y:
x=x_scaled
y=digits.target
劃分訓練集、測試集:
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y)
呼叫sklearn,使用感知機**:
from sklearn.neural_network import mlpclassifier
mlp=mlpclassifier(hidden_layer_sizes=(30,30,30),activation='logistic',max_iter=100)
mlp.fit(x_train,y_train)
進行**,並觀察效果:
下面我們進行調參,並觀察引數改變對**效果的影響:
from sklearn.pipeline import pipeline
from sklearn.model_selection import gridsearchcv
if __name__ == '__main__':
pipeline = pipeline([
('mlp',mlpclassifier(hidden_layer_sizes=(30,30,30),max_iter=100))
])parameters =
grid_search = gridsearchcv(pipeline, parameters,verbose=1,n_jobs=-1)
grid_search.fit(x_train, y_train)
print('最佳效果:%0.3f' % grid_search.best_score_)
print('最優引數:')
可以看到**效果有顯著提公升!
基於python的感知機
一 1 感知機可以描述為乙個線性方程,用python的偽 可表示為 sum weight i x i bias activation activation表示啟用函式,x i和weight i是分別為與當前神經元連線的其它神經元的輸入以及連線的權重。bias表示當前神經元的輸出閥值 或稱偏置 箭頭 ...
感知機自程式設計與sklearn實現
對於下面題目,分別用自程式設計和 sklearn 庫實現。已知訓練資料集d,其正例項點是x1 3,3 t,x2 4,3 t,負例項點是x3 1,1 t 1 用python 自程式設計實現感知機模型,對訓練資料集進行分類,並對比誤分類點選擇次序不同對最終結果的影響。可採用函式式程式設計或物件導向的程式...
Pytorch tensor的感知機
單層感知機的主要步驟 單層感知機梯度的推導 要進行優化的是w,對w進行梯度下降 a torch.randn 1,10 a是乙個 1,10 的向量 w torch.randn 1,10,requires grad true w是乙個可導的 1,10 的向量 1.2.經過乙個sigmoid啟用函式 o ...