from random import random
import numpy as np
deff(x):
a =-1
b =1
c =1return a *(x **2)+ b * x + c
defg(x):
k =1
b =1return k * x + b
defh(x):return np.sin(x)defget_data(num):
cnt =(np.random.random(100)-0.5)*20
cnt = np.sort(cnt)
X = cnt
Y = h(cnt)return X, Y
if __name__ =='__main__':
X, Y = get_data(100)print(X)print(Y)
2.keras
from turtle import color
import matplotlib.pyplot as plt
import numpy as np
import get_data
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD
X, Y = get_data.get_data(500)
model = Sequential()# 当前层神经元数量:1 激活函数类型:sigmoid 输入数据特征纬度:1
model.add(Dense(units=200, input_dim=1))
model.add(Dense(units=100))
model.add(Dense(units=100))
model.add(Dense(units=100, activation='sigmoid'))# model.add(Dense(units=100, activation='sigmoid'))# model.add(Dense(units=100, activation='sigmoid'))# model.add(Dense(units=100, activation='sigmoid'))# model.add(Dense(units=100, activation='sigmoid'))# model.add(Dense(units=100, activation='sigmoid'))# model.add(Dense(units=100, activation='sigmoid'))
model.add(Dense(units=1))# 损失函数(均方误差) 优化器(sgd:随机梯度下降算法) 评估标准(accuracy:准确度)
model.compile(loss='mse', optimizer=SGD(lr=0.01), metrics=['accuracy'])
model.summary()
model.fit(X, Y, epochs=10000, batch_size=20)
pres = model.predict(X)
plt.scatter(X, Y)
plt.plot(X, pres, color='red')
plt.show()