91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

神經網絡擬合曲線

資源截圖

代碼片段和文件信息

import?numpy?as?np
import?matplotlib.pyplot?as?plt
from?multiprocessing?import?Process?Lock?Array
import?time


def?load_data(filename):
????“““載入數據。“““
????xys?=?[]
????with?open(filename?‘r‘)?as?f:
????????for?line?in?f:
????????????xys.append(map(float?line.strip().split()))
????????xs?ys?=?zip(*xys)
????????return?np.asarray(xs)?np.asarray(ys)

def?identity_basis(x):
????ret?=?np.expand_dims(x?axis=1)
????return?ret



def?gaussian_basis(x?feature_num=20):
????‘‘‘高斯基函數‘‘‘
????#==========
????#todo?‘‘‘請實現高斯基函數‘‘‘
????ret_x?=?np.expand_dims(x?axis=1)
????max_x?=?np.max(x)
????min_x?=?np.min(x)
????line_number?=?ret_x.shape[0]
????l?=?(max_x-min_x)/19
????u?=?np.zeros((line_number20)dtype=float)
????for?j?in?range?(020):
????????u[:j]?=?min_x+l*j
????ret?=?np.zeros((line_number20)dtype=float)
????for?j?in?range(020):
????????for?i?in?range(0line_number):
????????????ret[ij]=np.exp(-((ret_x[i:]-u[ij])*(ret_x[i:]-u[ij]))/(l*l))
????#==========
???
????return?ret




def?main(x_train?y_train):
????“““
????訓練模型,并返回從x到y的映射。
????
????“““
????#basis_func?=?identity_basis
????basis_func?=?gaussian_basis
???
????phi0?=?np.expand_dims(np.ones_like(x_train)?axis=1)
????phi1?=?basis_func(x_train)
????phi?=?np.concatenate([phi0?phi1]?axis=1)
????#==========
????#todo?‘‘‘計算出一個優化后的w,請分別使用最小二乘法以及梯度下降兩種辦法優化w‘‘‘
????w?=?np.zeros((21)dtype=float)
????w?=?np.linalg.inv((np.transpose(phi)).dot(phi)).dot(np.transpose(phi)).dot(np.transpose(y_train))
????#==========

????
????def?f(x):
????????phi0?=?np.expand_dims(np.ones_like(x)?axis=1)
????????phi1?=?basis_func(x)
????????phi?=?np.concatenate([phi0?phi1]?axis=1)
????????
????????y?=?np.dot(phi?w)
????????return?y
????????pass

????return?f

def?evaluate(ys?ys_pred):
????“““評估模型。“““
????std?=?np.sqrt(np.mean(np.abs(ys?-?ys_pred)?**?2))
????return?std

#?程序主入口(建議不要改動以下函數的接口)
if?__name__?==?‘__main__‘:
????train_file?=?‘train.txt‘
????test_file?=?‘test.txt‘
????#?載入數據
????x_train?y_train?=?load_data(train_file)
????x_test?y_test?=?load_data(test_file)


????#?使用線性回歸訓練模型,返回一個函數f()使得y?=?f(x)
????f?=?main(x_train?y_train)

????y_train_pred?=?f(x_train)
????std?=?evaluate(y_train?y_train_pred)
????print(‘訓練集預測值與真實值的標準差:{:.1f}‘.format(std))
????
????#?計算預測的輸出值
????y_test_pred?=?f(x_test)
????#?使用測試集評估模型
????std?=?evaluate(y_test?y_test_pred)
????print(‘預測值與真實值的標準差:{:.1f}‘.format(std))

????#顯示結果
????plt.plot(x_train?y_train?‘ro‘?markersize=3)
????plt.plot(x_test?y_test?‘k‘)
????plt.plot(x_test?y_test_pred?‘k‘)
????plt.xlabel(‘x‘)
????plt.ylabel(‘y‘)
????plt.title(‘Linear?Regression‘)
????plt.legend([‘train‘?‘test‘?‘pred‘])
????plt.show()

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2975??2020-11-04?22:01??linear-model.py
?????文件????????3580??2020-10-29?09:43??test.txt
?????文件????????5315??2020-10-29?09:43??train.txt

評論

共有 條評論