国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python的線性回歸最小二乘算法的設(shè)計(jì)與實(shí)現(xiàn)

2021-02-28 12:09:08王立友
電腦知識(shí)與技術(shù) 2021年35期
關(guān)鍵詞:線性回歸最小二乘法深度學(xué)習(xí)

王立友

摘要:隨著科學(xué)技術(shù)的不斷進(jìn)步,以深度學(xué)習(xí)為代表的人工智能技術(shù)應(yīng)用逐步走入人們的視野。從車牌、人臉、語音的識(shí)別到推薦系統(tǒng)及自動(dòng)駕駛,人工智能技術(shù)的應(yīng)用越來越貼近人們的日常生活,給予人們極好的切身體驗(yàn)。得益于大數(shù)據(jù)的迅猛發(fā)展、計(jì)算能力的增強(qiáng)、學(xué)習(xí)算法的成熟,越來越多的人開始關(guān)注這個(gè)“全新”的研究領(lǐng)域:深度學(xué)習(xí)。深度學(xué)習(xí)(Deep Learning)隸屬于機(jī)器學(xué)習(xí)( Machine Learning)領(lǐng)域范疇。深度學(xué)習(xí)以神經(jīng)網(wǎng)絡(luò)為主要模型,探索學(xué)習(xí)樣本的內(nèi)在表現(xiàn)規(guī)律。在學(xué)習(xí)過程中,獲得文本、圖像和音頻等數(shù)據(jù)的解釋信息。其終極目標(biāo)是利用計(jì)算機(jī)模擬人的大腦進(jìn)行工作,擁有自主分析學(xué)習(xí)能力,精準(zhǔn)地識(shí)別音頻、文本、圖像等數(shù)據(jù)信息。深度學(xué)習(xí)是一個(gè)復(fù)雜的機(jī)器學(xué)習(xí)算法,該文將利用 Python 語言對(duì)深度學(xué)習(xí)中的線性回歸最小二乘法的設(shè)計(jì)與實(shí)現(xiàn)做進(jìn)一步探討,希望讓許多深度學(xué)習(xí)的初學(xué)者和愛好者對(duì)深度學(xué)習(xí)有一個(gè)最簡(jiǎn)單明了的認(rèn)知。

關(guān)鍵詞:深度學(xué)習(xí);Python;線性回歸;最小二乘法

中圖分類號(hào):TP391 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2021)35-0123-02

1 深度學(xué)習(xí)概述

深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)極為重要分支,深度學(xué)習(xí)基于人工神經(jīng)網(wǎng)絡(luò)的研究[1]。組合若干低層特征,以便于生成更高層次的表征屬性特征,發(fā)現(xiàn)數(shù)據(jù)的分布式特征表述。其本質(zhì)是對(duì)數(shù)據(jù)進(jìn)行表征學(xué)習(xí)的相關(guān)算法。例如描述圖像的觀測(cè)值過程中,能夠采用多種不同的形式進(jìn)行表述。如使用像素強(qiáng)度值向量表示;又或抽象為多條邊、特定形狀區(qū)域等。近年來監(jiān)督式深度學(xué)習(xí)算法(以反饋算法訓(xùn)練 CNN、LSTM 等)獲得了空前的成功,而基于半監(jiān)督或無監(jiān)督的算法(如 DBM、DBN)仍處在研究階段并已獲得不錯(cuò)的進(jìn)展。

探索深度學(xué)習(xí)的初衷,在于建立模擬人腦的神經(jīng)系統(tǒng),進(jìn)行數(shù)據(jù)的分析和學(xué)習(xí)。它參照人腦神經(jīng)工作模式來解釋數(shù)據(jù)[2-3],例如識(shí)別圖像、聲音、文本等。 上述信息的輸入和輸出會(huì)形成一對(duì)一的映射模式 ,其中的計(jì)算問題則利用一個(gè)流向圖(flow graph)來闡述。圖中各節(jié)點(diǎn)(node)均為一個(gè)基本計(jì)算單元,計(jì)算結(jié)果被應(yīng)用到該節(jié)點(diǎn)的子節(jié)點(diǎn)的值。進(jìn)而形成一個(gè)計(jì)算集合,被允許在各節(jié)點(diǎn)和可能的圖結(jié)構(gòu)里。其中,輸入節(jié)點(diǎn)無前繼節(jié)點(diǎn),輸出節(jié)點(diǎn)無后續(xù)節(jié)點(diǎn)。該流向圖的一個(gè)特別屬性是深度(depth):從一個(gè)輸入到一個(gè)輸出的最長(zhǎng)路徑的長(zhǎng)度(含多個(gè)隱層的深度學(xué)習(xí)模型如圖1 所示)。

2 線性回歸及最小二乘法

2.1 線性回歸

線性回歸是指在現(xiàn)有數(shù)據(jù)集上構(gòu)建一個(gè)線性模型,以便于擬合這個(gè)數(shù)據(jù)集特征向量中多個(gè)分量之間的關(guān)系[4]??梢酝ㄟ^已經(jīng)擬合好的線性模型來預(yù)測(cè)“新數(shù)據(jù)”的預(yù)期結(jié)果。二維線性模型為一條直線,三維的則是一個(gè)平面。目前,關(guān)于線性回歸的算法實(shí)現(xiàn),最小二乘法是應(yīng)用最為廣泛的算法之一[5]。對(duì)于數(shù)據(jù)集,利用線性模型來擬合其數(shù)據(jù)關(guān)系,相對(duì)于一維或多維數(shù)據(jù),均可通過構(gòu)建線性模型的方法來實(shí)現(xiàn)。例如,房子估價(jià)問題:當(dāng)已知房子的面積、臥室數(shù)量和房屋價(jià)格之間的關(guān)系時(shí),在得知一個(gè)新的房子信息后,如何進(jìn)行預(yù)測(cè),進(jìn)而得到對(duì)應(yīng)新房子的價(jià)格,假設(shè)面積用[x1]表示,臥室數(shù)量用[x2]表示,則房屋價(jià)格[h(x)]是關(guān)于面積與臥室數(shù)量的一次線性方程:

[h(x)=hθ(x)=θ0+θ1x1+θ2x2]

該線性模型僅包含兩個(gè)特征分量:面積和臥室數(shù)量。而大多數(shù)情況下,擬合的模型可能含有若干個(gè)特征分量,那么線性模型中對(duì)應(yīng)的權(quán)重值[θ]同樣需要相同的量??梢允褂镁仃囅蛄縼磉M(jìn)行表示:[hθ=θTX]。

2.2 最小二乘法

向量[θ](長(zhǎng)度為[n])中所有的分量都是預(yù)測(cè)表達(dá)式函數(shù)[h(x)]中相對(duì)應(yīng)參數(shù),矩陣[X(m*n)]構(gòu)成了數(shù)據(jù)集中所有樣本特征向量所組成的矩陣。數(shù)據(jù)集中的實(shí)際值使用向量[Y](長(zhǎng)度為[m])表示,若通過實(shí)際值來構(gòu)建方程組,參數(shù)向量[θ]中的對(duì)應(yīng)值即為我們所求未知量。通常狀況下,設(shè)定一個(gè)超定方程組(無確定解),只能求出超定方程組的最優(yōu)解。利用構(gòu)建相應(yīng)的損失函數(shù)權(quán)衡估值和實(shí)際值之間的誤差,將最小誤差損失函數(shù)作為約束條件求出參數(shù)向量最優(yōu)解。函數(shù)[J(θ)]即為損失函數(shù),它計(jì)算出數(shù)據(jù)集中每一個(gè)樣例的估值和實(shí)際值的平方差并求取平均,即最小二乘法。最小二乘法經(jīng)數(shù)學(xué)推導(dǎo)最終得到一個(gè)標(biāo)準(zhǔn)方程,該方程的解即為最優(yōu)的參數(shù)向量。即:

[J(θ)=12i=1m(hθ(x(i))-y(i))2]

3 線性回歸最小二乘法的Python程序?qū)崿F(xiàn)

3.1 實(shí)驗(yàn)數(shù)據(jù)來源

本文實(shí)驗(yàn)數(shù)據(jù)來源于互聯(lián)網(wǎng)上的網(wǎng)絡(luò)資源。數(shù)據(jù)主要內(nèi)容為:某大城市用戶一天的用電時(shí)間、用電功率。編寫Python程序,以便實(shí)現(xiàn)輸出用戶用電時(shí)間和用電功率之間的線性關(guān)系的真實(shí)值和采用線性回歸最小二乘法的預(yù)測(cè)值,并對(duì)兩者之間進(jìn)行比對(duì)。

3.2 程序?qū)崿F(xiàn)

編寫主程序并運(yùn)行,實(shí)現(xiàn)線性回歸最小二乘法,具體實(shí)現(xiàn)的主要代碼如下:

from sklearn.linear_model import LinearRegression ?# 導(dǎo)入線性回歸模型

from sklearn.model_selection import train_test_split ?# 導(dǎo)入訓(xùn)練測(cè)試集

from sklearn.preprocessing import StandardScaler ? ?# 導(dǎo)入數(shù)據(jù)標(biāo)準(zhǔn)化

import numpy as np

import pandas as pd

import matplotlib as mpl

import matplotlib.pyplot as plt

import time

path1 = 'datas/household_power_consumption.txt' #實(shí)驗(yàn)數(shù)據(jù)所在路徑

df = pd.read_csv(path1, sep=';', low_memory=False)

# 異常數(shù)據(jù)的處理

new_df = df.replace('?', np.nan)

datas = new_df.dropna(axis=0, how='any')

Y = datas['Global_active_power'] # 提取Y的實(shí)際值

def data_format(dt):#格式化時(shí)間數(shù)據(jù)

t = time.strptime(' '.join(dt), '%d/%m/%Y %H:%M:%S') # 合并第一列和第二列中X的對(duì)應(yīng)值,將t轉(zhuǎn)化為時(shí)間元組,并格式化t

return t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec

X = datas.iloc[:, 0:2] # 利用索引提取第一列和第二列的X的值

X = X.apply(lambda x: pd.Series(data_format(x)), axis=1)

# 對(duì)數(shù)據(jù)集進(jìn)行測(cè)試、訓(xùn)練集劃分,X: 特征矩陣(類型一般為DataFrame)

# Y: 特征對(duì)應(yīng)的Label標(biāo)簽或目標(biāo)屬性(類型一般為Series)

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)

ss = StandardScaler()

X_train = ss.fit_transform(X_train) ?# 標(biāo)準(zhǔn)化

X_test = ss.transform(X_test)

lr = LinearRegression(fit_intercept=True) ?# fit 模型訓(xùn)練

lr.fit(X_train, Y_train) ?# 對(duì)模型進(jìn)行訓(xùn)練

y_predict = lr.predict(X_test)

print('訓(xùn)練集上的R^2:', lr.score(X_train, Y_train))

print('測(cè)試集上的R^2:', lr.score(X_test, Y_test))

mse = np.average((y_predict - Y_test) ** 2)

rmse = np.sqrt(mse)

print('rmse:', rmse)

print('模型訓(xùn)練后的系數(shù):', end='')

print(lr.coef_)

print('模型訓(xùn)練后的截距:', end='')

print(lr.intercept_)

t = np.arange(len(X_test))

plt.figure(facecolor='w')

plt.plot(t, Y_test, 'r-', linewidth=2, label='真實(shí)值')

plt.plot(t, y_predict, 'g-', linewidth=2, label='預(yù)測(cè)值')

plt.legend(loc='upper left')

plt.title('線性回歸預(yù)測(cè)時(shí)間和功率之間的關(guān)系', fontsize=20)

plt.grid(b=True)

plt.show() #顯示時(shí)間和功率的真實(shí)值與預(yù)測(cè)值圖表

4 結(jié)束語

本研究利用Python程序?qū)崿F(xiàn)了線性回歸最小二乘算法,預(yù)測(cè)值與真實(shí)值之間存在一定的差異,希望在以后的研究中逐步改進(jìn)現(xiàn)有算法,爭(zhēng)取獲得更好的實(shí)驗(yàn)效果。

參考文獻(xiàn):

[1] 汪飛.基于人工智能下深度學(xué)習(xí)的現(xiàn)狀及趨勢(shì)研究[J].電腦迷,2018(10):140-141.

[2] 王梓橋,劉沛豐,郝峰,等.基于深度學(xué)習(xí)的手寫數(shù)字識(shí)別技術(shù)應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2018,36(11):78-79.

[3] 史聰慧.基于深度學(xué)習(xí)的智能參考咨詢服務(wù)模式[J].電腦知識(shí)與技術(shù),2020,16(3):205-206,229.

[4] 李嚴(yán)明.基于機(jī)器學(xué)習(xí)的氣象因素對(duì)小麥產(chǎn)量影響的分析預(yù)測(cè)[D].鄭州:河南農(nóng)業(yè)大學(xué),2019.

[5] 羅潤(rùn)林,阮懷寧,朱昌星.基于粒子群-最小二乘法的巖石流變模型參數(shù)反演[J].遼寧工程技術(shù)大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,28(5):750-753.

【通聯(lián)編輯:謝媛媛】

猜你喜歡
線性回歸最小二乘法深度學(xué)習(xí)
馬爾科夫鏈在市場(chǎng)預(yù)測(cè)中的應(yīng)用
國(guó)道公路養(yǎng)護(hù)管理與規(guī)劃研究
一種改進(jìn)的基于RSSI最小二乘法和擬牛頓法的WSN節(jié)點(diǎn)定位算法
MOOC與翻轉(zhuǎn)課堂融合的深度學(xué)習(xí)場(chǎng)域建構(gòu)
大數(shù)據(jù)技術(shù)在反恐怖主義中的應(yīng)用展望
深度學(xué)習(xí)算法應(yīng)用于巖石圖像處理的可行性研究
基于深度卷積網(wǎng)絡(luò)的人臉年齡分析算法與實(shí)現(xiàn)
軟件工程(2016年8期)2016-10-25 15:47:34
最小二乘法基本思想及其應(yīng)用
科技視界(2016年22期)2016-10-18 17:12:13
影響上市公司股票價(jià)格的微觀因素分析
商(2016年13期)2016-05-20 09:12:44
企業(yè)退休金收支平衡的研究
科技視界(2016年9期)2016-04-26 12:16:25
峡江县| 灵台县| 罗源县| 思茅市| 新巴尔虎左旗| 顺昌县| 莱州市| 兴城市| 会东县| 东台市| 呈贡县| 侯马市| 边坝县| 武夷山市| 宁乡县| 北流市| 孝义市| 镇宁| 仙居县| 建瓯市| 天长市| 闵行区| 太仆寺旗| 潜山县| 蒙城县| 南丰县| 松江区| 民乐县| 韶山市| 师宗县| 基隆市| 龙海市| 陆河县| 万载县| 东阿县| 丽江市| 吉林市| 尚志市| 平遥县| 繁峙县| 泸州市|