""" ........................................................ Az f(x)=x^3-x függvény közelítése a (-2,3) intervallumon ........................................................ """ print(__doc__) import numpy as np import matplotlib.pyplot as plt from sklearn.neural_network import MLPRegressor from sklearn.grid_search import GridSearchCV # parancs importálása grid search elvégzéséhez # tanitohalmaz x=np.arange(-2,3,0.2).reshape(25,1) # (-2,3) intervallumon választunk egyenletesen 25 pontot y=(x**3-x).reshape(25,) # tanítópontok 2. koordinátája (reshape nem muszáj, de így kevesebb warningot kapunk) # halozat elkeszitese es tanitasa reg = MLPRegressor(hidden_layer_sizes=(20),solver='lbfgs',max_iter=100) reg.fit(x,y) # tesztpontok test_x=np.random.uniform(-3,4,30) # (-3,4) intervallumból 30 pontot választunk véletlenszerűen (egyenletes eloszlással) # abrazolas plt.plot(x,y,'g-') # a közelítendő függvény ábrázolása (tanítópontok összekötve) plt.plot(test_x,reg.predict(np.reshape(test_x,(30,1))),'b*') # tesztpontok ábrázolása plt.show() ################################ # Grid Search: parameters={'solver': ['lbfgs','sgd','adam'],'activation': ['relu','logistic','identity'], 'hidden_layer_sizes': [(30),(50,50)]} # gridsearch használatához a "paraméter-rács" gs = GridSearchCV(reg,parameters) # reg helyén annyi is lehetne, hogy "MLPRegressor()" gs.fit(x, y) print(gs.best_params_) # mely paraméterek esetén kaptuk a legnagyobb pontosságot print(gs.best_score_) # mi ez a pontosság plt.plot(x,y,'g-') plt.plot(test_x,gs.predict(np.reshape(test_x,(30,1))),'b*') # itt a legjobb paraméterválasztással elkészített hálózat által számolt tesztpont-értékeket ábrázoljuk plt.show()