2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
linearibus procedere: In limitata notitia, parametris aptando, recta linea aptum est, et haec linea recta (exemplar) experimentis in incognitis notitia adhibetur.praedico。
Rectusgeneralis forma:
y = w × x + per = w temporibus x + by*********************************************=w*******************************************************************×x***********************************************************+b
Status totius rectae lineae datur per w et bw et b *w*******************************************************************etbDecernere, www*******************************************************************determinare rectamfastigiumid est angulus benificium; bbbDeterminare rectam lineam Yintercipere(Imperare sursum et deorsum translationem rectae, etiam notabias ).Ergo tantum computare oportet www*******************************************************************et bbbValor rectam lineam specificam determinare potest www*******************************************************************et bbb。
noun
noun | Definition |
---|---|
Disciplina set | Dataset ad exemplar instituendi |
test set | Dataset probare solebat exemplar quale |
Sample Training / Training Point (Sample Training) | Quisque item of notitia in disciplina |
Features | Notitia initus in exemplar valores numerales esse possunt, categoriae labellae, valores imaginum pixel, etc. |
Label | Exemplar necesse est ut scopum valorem praedicere. Pro quaestionum classificatione, titulus plerumque nomen classis est; |
Disceamus regressionem linearem univariatam primum. Regressio linearis univariata sic dicta de munere lineari refert cum uno tantum variabili independens, ut: y = w ⋅ x + by = wcdot x +by*********************************************=w*******************************************************************⋅x***********************************************************+bIlle estUnivariate recta, unum tantum habet initus variabilis xx*x*********************************************************** . Haec recta linea in plano duobus dumtaxat exprimi potest (axis horizontalis X et axis verticalis Y).
Cum datas indivisas statutum accipimus, plerumque notitias in certa disciplina et certa divisione dividere consuevimus. Simplex divisio modus est: primum 80% exemplorum ut institutio pone, reliquae 20% as . test paro.
Puta nos adinvenit www*******************************************************************et bbbergo recta linea decrevimus, et hac recta linea uti possumus ad praedicerey'cum reali valoremy*********************************************intererrorPrinceps definire volumus, praedictum valorem metiri solebat y y'y*********************************************′cum vero valorem yyy********************************************* error intercedit.Hic utimurquadrata medium errorisdefiniremunus pretium:
J ( w , b ) = 1 2 m i = 1 m ( fw , b ( x ( i ) ) y ( i ) ) 2 J(w,b) = frac{1}{2m}sumlimites_{i = 1}^m(f_{w,b}(x^{(i)}) - y^{(i)})^2J(w*******************************************************************,b)=2m1ego=1∑m(f*************w*******************************************************************,b(x***********************************************************(ego))−y*********************************************(ego))2
Formula commotionis:
fw , b ( x ( i ) ) y ( i ) f_{w,b}(x^{(i)}) - y^{(i)}f*************w*******************************************************************,b(x***********************************************************(ego))−y*********************************************(ego):in fw , b ( x ( i ) ) f_{w,b}(x^{(i)})f*************w*******************************************************************,b(x***********************************************************(ego))significat valorem praedictum per eruditum exemplar, dum y ( i ) y^{(i)}y*********************************************(ego)verum eventus cuiusque disciplinae specimen repraesentat, et differentia inter utrumque errorem significat inter valorem praedictum exemplar et verum valorem.
Quid error quadrat?
In omnibus exemplaribus propositis, quilibet error positivus vel negativus esse potest, et quaedam probabilitas offset in processu summationis erit. -25, +30), post complexionem parvi pretii (-5) obtinetur, et tandem perversa sententia obtinetur.
1 2 m frac{1}{2m}2m1: Repraesentat mediocris summae omnium errorum notitia (hoc mediocris potest repraesentare errorem totius exemplar in sensu), et medium obtinet quadratum erroris.
quare divide per 2?
Quia cum descensus gradiens serius peragitur, derivatio indiculum 2 in coefficientes dividet, quia pro magna copia notitiarum, constante parum ictum in exemplari habet. ad subsequentem offset.
Munus sumptus cognoscentes, solum opus est ut vias pretium pretium reducere.
Per errorem functionis sumptus observando, videre possumus munus sumptus erroris functionis quadratae esse, id est, aconvexum munusproprietas functionis convexae;Extremum punctum est maximum punctum , cum munus sumptus munus sit munus quadraticum sursum aperit (explicari formulam potest, et intuitive sentire coefficientem termini quadrati maiorem esse quam 0), ergo munus convexum solum minimum valorem habet, nos tantum. opus est invenire valorem minimi pretii minimi pretii.Nam error munus pretium J ( w , b ) J (w, b)J(w*******************************************************************,b) , forma dilatationis inscribi potest;
J ( w , b ) = 1 2 m i = 1 m ( ( wx ( i ) + b ) − y ( i ) ) 2 J(w,b) = frac{1}{2m}sumlimites_{i = 1 }^m((wx^{(i)}+b) - y^{(i)})^2J(w*******************************************************************,b)=2m1ego=1∑m((w*******************************************************************x***********************************************************(ego)+b)−y*********************************************(ego))2
JJJMagnitudo in parametri pendent www*******************************************************************et bbbquae per descensum clivum solvi potest. Figura functionis sumptus est fere haec:
Ratio gradatim descensus maxime curritReperio partialis indemethodus, quae ad biologicum referturimperium variablesModus est simillimus, ut: in regendo bbbUpdate sine mutatione www*******************************************************************(visibilis bbbconstans) formula; w = w α J (w) ww' = w - alpha frac{ partiale J(w)}{w}w*******************************************************************′=w*******************************************************************−α∂w*******************************************************************∂J(w*******************************************************************) Indicat ordinem renovatum esse www*******************************************************************,in α alphaα representsdoctrina rate Significatur gradus magnitudinis, quae etiam pro velocitate descensus intelligi potest; J ( w ) w frac{ partialis J(w)}{ w} partialis∂w*******************************************************************∂J(w*******************************************************************) exprimit ius www*******************************************************************Exspectantes derivationem partialem accipimus W JW - JW−J(WeightsWet pretiumJfunction) Linea tangens functione convexa, repraesentabat munus valorem velocissimum decrescentemdirectionemEx duobus repraesentatMove unum gradum in directum ubi munus valorem velocissimo decrescit .Haec distantia aptanda est secundum notitias certas α alphaαSi nimis magna est (gradus magnitudinis nimis magna est), eam ducet www*******************************************************************directe super imum pergit ad summum ex altera parte, ita ut nunquam accedat ad minimum, si α alphaαSi angustus est (gradus magnitudinis nimis angustus est), eam ducet www*******************************************************************Tardius ac tardius accipit dum minimus appropinquat, sumptus computationales consumit.
doctrina rate ( α alphaα) Temperatio methodo:
Minorem primam α alphaα Ut: 0.001.
Tunc crescit per 10 singula tempora usque ad maximum 1 .
Post certum valorem determinatum, haec sunt: 0.01.
Tum efficiunt 3 tempora processus, ut: 0.01 × 3 = 0.03, 0.03 × 3 = 0.09 0.01 times 3 = 0.03, 0.03 times 3 = 0.090.01×3=0.03,0.03×3=0.09 (Propositum hoc est ut concursum citius faceret).
Processus solvendi derivationes partiales (invento directione descensus clivi);
oro J ( w ) w frac{ partialis J(w)}{ w} partialis∂w*******************************************************************∂J(w*******************************************************************) :
J ( w ) w frac{ partialis J(w)}{ w} partialis∂w*******************************************************************∂J(w*******************************************************************) = ∂ w 1 2 m i = 1 m ( fw , b ( x ( i ) ) y ( i ) w 1 2 m i = 1 m ( fw , b ( x ( i ) ) y ( i ) 2 {m}(f_{w,b}(x^{(i)}) - y^{(i)})^2∂w*******************************************************************∂2m1ego=1∑m(f*************w*******************************************************************,b(x***********************************************************(ego))−y*********************************************(ego))2
= ∂ ∂ w 1 2 m i = 1 mwx ( i ) − y ( i ) ) 2 frac{partialis}{partialis w}tfrac{1}{2m}sumlimits_{i = 1}^{m}wx^{( i)}- y^{(i)})^2∂w*******************************************************************∂2m1ego=1∑mw*******************************************************************x***********************************************************(ego)−y*********************************************(ego))2
= 1 2 m ∑ i = 1 m ( fw , b ( x ( i ) ) y ( i ) ) 2 x ( i ) frac{1}{2m} summae_{i = 1}^{m}(f_{ w,b}(x^{(i)}) - y^{(i)})cdot2x^{(i)}2m1ego=1∑m(f*************w*******************************************************************,b(x***********************************************************(ego))−y*********************************************(ego))⋅2x***********************************************************(ego)
= 1 m ∑ i = 1 m ( fw , b ( x ( i ) ) y ( i ) ) x ( i ) frac{1}{m} summae_{i = 1}^{m}(f_{w,b }(x^{(i)}) - y^{(i)})x^{(i)}m1ego=1∑m(f*************w*******************************************************************,b(x***********************************************************(ego))−y*********************************************(ego))x***********************************************************(ego)
oro J (w ) ∂ b frac{ partialis J(w)}{ b} partialis∂b∂J(w*******************************************************************) :
J (w ) ∂ b frac{ partialis J(w)}{ b} partialis∂b∂J(w*******************************************************************) = ∂ b 1 2 m i = 1 m ( fw , b ( x ( i ) ) y ( i ) b 1 2 m i = 1 m ( fw , b ( x ( i ) ) − y ( i ) ) {m}(f_{w,b}(x^{(i)}) - y^{(i)})^2∂b∂2m1ego=1∑m(f*************w*******************************************************************,b(x***********************************************************(ego))−y*********************************************(ego))2
= ∂ b 1 2 m i = 1 mwx ( i ) − y ( i ) ) 2 frac{partialis}{partialis b}frac{1}{2m}summimi_{i = 1}^{m}wx^{( i)}- y^{(i)})^2∂b∂2m1ego=1∑mw*******************************************************************x***********************************************************(ego)−y*********************************************(ego))2
= 1 2 m ∑ i = 1 m ( fw , b ( x ( i ) ) y ( i ) ) 2 frac{1}{2m} summae limites_{i = 1}^{m}(f_{w,b} (x^{(i)}) - y^{(i)})cdot22m1ego=1∑m(f*************w*******************************************************************,b(x***********************************************************(ego))−y*********************************************(ego))⋅2
= 1 m ∑ i = 1 m ( fw , b ( x ( i ) ) y ( i ) ) frac{1}{m} summa limitum_{i = 1}^{m}(f_{w,b}(x^ {(i)}) - y^{(i)})m1ego=1∑m(f*************w*******************************************************************,b(x***********************************************************(ego))−y*********************************************(ego))
Invenire specifica per loop iteratio www*******************************************************************valorem cum bb*bpretii;
dum ( ) : dum ()w*******************************************************************Salvele():
w ∗ = w α w J ( w , b ) w * = w - alpha frac{partialis}{partialis w}J(w,b)w*******************************************************************∗=w*******************************************************************−α∂w*******************************************************************∂J(w*******************************************************************,b)
b ∗ = b α b J ( w , b ) b * = b - alpha frac{partialis}{partialis b}J(w,b)b∗=b−α∂b∂J(w*******************************************************************,b)
w = w w = w *w*******************************************************************=w*******************************************************************∗
b = b b = b^*b=b∗
In principio passim valorem w et b, et deinde iterare possumus. Gradientem descensum ad exitum perducere possumus, cum error sit minus quam certum limen, vel numerum iterationum customize www*******************************************************************valorem sum bb*bpretii.
Regressio linearis multivariabilis ampliat dimensiones tribus dimensionibus et etiam multidimensionalibus civitatibus, ut y = w 1 x 1 + w 2 x 2 + w_1 x_1 + w_2 x_2 + by*********************************************=w*******************************************************************1x***********************************************************1+w*******************************************************************2x***********************************************************2+b potest intelligiXAxis etYSecures sunt x 1 et x 2 x_1 et x_2x***********************************************************1etx***********************************************************2 ZAxis est yyy*********************************************, hoc est triplex status dimensivus. Quaelibet disciplina specimen punctum est in spatio trium dimensivarum.
Modus: Pro seorsim quisque variabilis ( w 1 , w 2 , ... , wn , b w_1, w_2, dots, w_n, bw*******************************************************************1,w*******************************************************************2,…,w*******************************************************************n,b) Pro gradiente descensu processus
Praecipua puncta: Pro multivariabilibus linearibus regressus, valores diversae notae diversae sunt, ut: valor extensionis aetatis; 0 0 0 ~ 100 100 100area tegens; 0 m 2 0m^20m2 ~ 10000 m 2 10000m^210000m2 esse etiam potestMirum specimenSingularis exempli notitia exsistentia causat disciplina tempus auget, et etiam ad defectum tendunt.Normalised Sed contra, cum nulla specimen specimen singulare non sit, ordinationem fieri non oportet.Ad hanc quaestionem compellare, praestare debemusFeatures sunt scalis (normalised)。
Data ordinationem processus
efficereData ordinationemTres sunt modi:
Idem ac dividere per maximum valorem;
Omnes valores in unaquaque linea a maximi pretii in illa pluma dividuntur.
Medium ordinationem:
Detrahe valorem uniuscuiusque plumae ex valore illius plumaemediumac deinde per differentiam inter maximos et minimos valores plumae dividitur.
Z-score ordinationem:
Adice pluma inter sevexillum digredioretmedium
Valorem uniuscuiusque plumae ab omnibus valoribus illius plumae subtrahemediocris pretiiac deinde per pluma'smedium
Si ordinationem non exercetur, munus sumptus mutabitur propter magnas differentias in valoribus diversarum linearum in pluma vectoris. "planum" .Hoc modo, gradiente descensu faciendo, directio gradientis a directione minimi valoris deflectet, et multum erit.circuitusquae disciplina tempus longum faciet.
Post ordinationem munus obiectivum comparationem ostendet "circum"ita ut disciplina velocitatis vehementer acceleratur et multae ambages evitantur.
Beneficia data ordinationem:
J ( w , b ) = 1 2 m i = 1 m ( fw , b ( x ( i ) ) y ( i ) ) 2 J(w,b) = frac{1}{2m}sumlimites_{i = 1}^m(f_{w,b}(x^{(i)}) - y^{(i)})^2J(w*******************************************************************,b)=2m1ego=1∑m(f*************w*******************************************************************,b(x***********************************************************(ego))−y*********************************************(ego))2
Gradiente descensus multiplex regressus lineares:
w 1 = W 1 − α 1 m i = 1 m ( fw ⃗ , bx ( i ) y ( i ) ) x 1 ( i ) w_1 = W_1 - alpha frac{1}{m}sumlimits_{i = 1}^{m}(f_{vec{w},b}vec{x}^{(i)} - y^{(i)})x_1^{(i)}w*******************************************************************1=W1−αm1ego=1∑m(f*************w*******************************************************************,bx***********************************************************(ego)−y*********************************************(ego))x***********************************************************1(ego)
vdots⋮
wn = W n − α 1 m i = 1 m ( fw , bx ( i ) y ( i ) ) xn ( i ) w_n = W_n - alpha frac{1}{m}sumlimits_{i = 1} ^{m}(f_{vec{w},b}vec{x}^{(i)} - y^{(i)})x_n^{(i)}w*******************************************************************n=Wn−αm1ego=1∑m(f*************w*******************************************************************,bx***********************************************************(ego)−y*********************************************(ego))x***********************************************************n(ego)
b = b α α 1 m i = 1 m ( fw , bx ⃗ ( i ) y ( i ) ) b = b - alpha frac{1}{m} summae_{i = 1}^{m}( f_{vec{w},b}vec{x}^{(i)} - y^{(i)})b=b−αm1ego=1∑m(f*************w*******************************************************************,bx***********************************************************(ego)−y*********************************************(ego))
explicare; w I wn w_1cdots w_nw*******************************************************************1⋯w*******************************************************************n coefficiens cuiusque variabilis repraesentat, b et b terminum constantem functionis linearis repraesentat.
Omitte...
Derivatio Mathematica:
J = 1 2 m ∑ i = 1 m ( θ ix i − yi ) 2 J = frac{1}{2m} summa limitum_{i = 1}^{m}(vec{theta}_i vec{x}_i - y_i)^2J=2m1ego=1∑m(θegox***********************************************************ego−y*********************************************ego)2
= 1 2 m ∣ θ ⃗ x ⃗ y ∣ ∣ 2 frac{1}{2m}||vec{theta} vec{x} - y||^22m1∣∣θx***********************************************************−y*********************************************∣∣2
= 1 2 m ( θ ⃗ x ⃗ y ) T ( θ x ⃗ y ) frac{1}{2m}(vec{theta} vec{x} - y)^T(vec{theta} vec{x} — y)2m1(θx***********************************************************−y*********************************************)T(θx***********************************************************−y*********************************************)
= 1 2 m ( θ T x ⃗ T y T ) ( θ x y ) frac{1}{2m}(vec{theta}^T vec{x}^T - y^T)(vec{ theta} vec{x} - y)2m1(θTx***********************************************************T−y*********************************************T)(θx***********************************************************−y*********************************************)
= 1 2 m ( θ T x ⃗ T x ⃗ θ y T x ⃗ θ θ T x ⃗ T y + y T y ) frac{1}{2m}(vec{theta}^T vec{ x}^Tvec{x}vec{theta} - y^Tvec{x}vec{theta} -vec{theta}^Tvec{x}^Ty +y^Ty )2m1(θTx***********************************************************Tx***********************************************************θ−y*********************************************Tx***********************************************************θ−θTx***********************************************************Ty*********************************************+y*********************************************Ty*********************************************)
ius θ thetaθReperio derivativum partialem; = ∂ J θ = 1 2 m ( θ T x ⃗ T x ⃗ θ θ y T x ⃗ θ θ θ T x ⃗ T y θ θ + y T y ∂ θ ) Delta =frac{partialis J}{theta}= frac{1}{2m}(frac{partialis vec{theta}^T vec{x}^Tvec{x}vec{theta}}{theta} frac{partialis y^Tvec{x}vec{theta}}{theta} - frac{partialis vec{theta}^Tvec{x}^Ty}{theta} + frac{y^Ty}{theta}Δ=∂θ∂J=2m1(∂θ∂θTx***********************************************************Tx***********************************************************θ−∂θ∂y*********************************************Tx***********************************************************θ−∂θ∂θTx***********************************************************Ty*********************************************+∂θy*********************************************Ty*********************************************)
Matrix derivationis regulae;
∂ θ TA θ θ = (A + AT) θ frac{theta^{T}Atheta}{theta partialis} = (A + A^T) theta∂θ∂θTAθ=(A+AT)θ
∂ XTA X = A frac{partialis X^{T}A}{partialis X} = A .∂X∂XTA=A
AX ∂ X = AT frac{partialis AX}{partialis X} = A^T∂X∂AX=AT
∂ A X = 0 frac{partialis A}{partialis X} = 0∂X∂A=0
Praesto = 1 2 m ( θ T x ⃗ T x ⃗ θ θ y T x ⃗ θ θ θ θ T x ⃗ T y θ + y T y θ ) = 1 2 m ⋅ ( 2 x T x θ 2 x T y ) = 1 m ⋅ ( x T x θ x T y ) Delta = frac{1}{2m}(frac{vec{theta}^T vec{x }^Tvec{x}vec{theta}}{theta} - frac{partialis y^Tvec{x}vec{theta}}{theta} - frac{partialis vec{theta}^Tvec{x}^Ty} {theta} + frac{y^Ty}{theta}{partialis) = frac{1}{2m}cdot (2x^Txtheta - 2x^Ty) = frac{1}{m} cdot (x^Txtheta - x^ Ty)Δ=2m1(∂θ∂θTx***********************************************************Tx***********************************************************θ−∂θ∂y*********************************************Tx***********************************************************θ−∂θ∂θTx***********************************************************Ty*********************************************+∂θy*********************************************Ty*********************************************)=2m1⋅(2x***********************************************************Tx***********************************************************θ−2x***********************************************************Ty*********************************************)=m1⋅(x***********************************************************Tx***********************************************************θ−x***********************************************************Ty*********************************************)
quando = 0 Delta = 0Δ=0 hora: x T x θ = x T yx^Tx theta = x^Tyx***********************************************************Tx***********************************************************θ=x***********************************************************Ty********************************************* , θ = ( x T x ) − 1 x T y theta = (x^Tx)^{-1}x^Ty.θ=(x***********************************************************Tx***********************************************************)−1x***********************************************************Ty********************************************* iniri potest θ thetaθ pretii.
Comparatio Gradientis Descensus et Normalis Aequationum:
descensus: Oportet eligere ratem α discentium, quae multiplices iterationes requirit. Potest etiam melius applicari cum numerus linearum n est magnus, et ad varias formas aptus.
normalis aequationem: Non est necesse eligere ratem discendi α. Computari semel et iniri debet. ( x T x ) − 1 (x^Tx)^{-1}(x***********************************************************Tx***********************************************************)−1 , si numerus linearum nnnSi maior, operandi sumptus erit superior, quia calculi incomplexum temporis matricis inversum est O ( n 3 ) O (n^3)O*(n3) Plerumque cum nnnHoc gratum est, cum minus quam 10,000 est.Tantum available pro linearibus exemplaribusaliis exemplaribus non apta, ut exempla regressionis logisticae.
Cum in quibusdam casibus difficile sit rectas lineas omnes notitias aptare, curvae necessariae sunt ad notitias aptandas, ut exempla quadrata, exempla cubica, etc.
In genere, regressio functionis notitiae ignoratur. Etiam si notum est, difficile est illud in exemplar lineari formare cum simplici functione transmutationis transmutare, sic communis accessus est .integra procedere(Regressio polynomialis), hoc est, functione polynomiae utens ad notitias aptandas.
Quomodo eligere gradum polynomiae:
Multae rationes functionum polynomialium sunt. Fere, debes primum figuram notitiarum observare et deinde definire utra forma functionis polynomiae utatur ad problema solvendum. Exempli gratia, ab insidiarum notitia dispergat, si est".flectere ", considerare potes utentes polynomiales quadratici (id est characteres quadratici); sunt duo "flectere ";flectere tunc considera polynomiam utens quarto ordine (sumpto quarta potestate plumae), et sic de aliis.
Etsi munus regressionis realis non necessario est alicuius gradus polynomiae, dummodo aptum bonum sit, fieri potest ut aptum polynomiale uti ad functionem regressionem realem approximandam.
Appendix ad calcem articuli continet omnia notitia originalia in experimento adhibita.ex1data1.txt
est enim coniunctio hominum et utilitatum; ex1data2.txt
Est impetus domus et numerus cubiculorum in pretio domus.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
path = "ex1data1.txt"
data = pd.read_csv(path,header = None,names=['Population','Profit'])
data.head() # 预览数据
data.describe() # 更加详细的数据描述
# 可视化训练数据
data.plot(kind = 'scatter',x = 'Population',y = 'Profit',figsize = (12,8))
plt.show()
def computerCost(X,y,theta): # 定义代价函数
inner = np.power(((X*theta.T)-y),2) # theta.T表示theta的转置
return np.sum(inner)/(2*len(X))
data.insert(0,"One",1) # 表示在第0列前面插入一列数,其表头为One,其值为1
Inserere in primam columnam data copia 1 1 1Munus estBenefacit matrix calculis, multiplicatis vulvis, involvuntur pondera www*******************************************************************et Praeiudicia bb*b,quod bb*bvariabili non multiplicatur a . 1 1 1, usus est in bb*bMultiplicare.
cols = data.shape[1]
X = data.iloc[:,0:cols - 1] #“,”前只有“:”,表示所有的行,“,”后表示抽取数据中第[0列~第cols-1列)(左闭右开),去掉最后一列,最后一列为预测值
y = data.iloc[:,cols - 1:cols] #只取最后一列的值,表示预测值
X.head()
y.head()
X = np.matrix(X.values)
y = np.matrix(y.values) #只将表格中的值装换为矩阵而不是包括序号与标题
#初始化theta
theta = np.matrix(np.array([0,0])) #先是一个一维的数据,然后在转换为一个二维的矩阵
theta
# => matrix([[0, 0]])
X.shape,theta.shape,y.shape # 此时theta为一行列,需要进行转置
# => ((97, 2), (1, 2), (97, 1))
computerCost(X,y,theta)
# => 32.072733877455676
def gradientDecent(X,y,theta,alpha,iters): #iters为迭代次数
temp = np.matrix(np.zeros(theta.shape)) #构造一个与theta大小一样的零矩阵,用于存储更新后的theta
parmaters = int (theta.ravel().shape[1]) #.ravel()的功能是将多维数组降至一维,用于求需要求的参数个数
cost = np.zeros(iters) #构建iters个0的数组,相当于对每次迭代的cost进行记录
for i in range(iters):
error = (X * theta.T - y) #记录误差值,结果为一个数组
for j in range(parmaters): #对每一个参数进行更新,j用于表示每一个参数
term = np.multiply(error,X[:,j]) #.multiply 是对矩阵当中的数对应相乘,这里表示与X矩阵的第j列相乘。
temp[0,j] = theta[0,j] - ((alpha/len(X))*np.sum(term)) #存储更行后的theta的值,.sum()表示将矩阵中的数进行求和
theta = temp #更新theta
cost[i] = computerCost(X,y,theta) #计算此时的代价,并记录在cost中。
return theta,cost
alpha = 0.01 # 学习率
iters = 1000 # 迭代次数
g,cost = gradientDecent(X,y,theta,alpha,iters)
g
# => matrix([[-3.24140214, 1.1272942 ]])
computerCost(X,y,g)
# => 4.515955503078914
x = np.linspace(data.Population.min(),data.Population.max(),100) #抽取100个样本 (从data数据集中的最小值到最大值之间抽取100个样本)
f = g[0,0] + (g[0,1] * x) #f = ax + b
fig,ax = plt.subplots(figsize = (12,8)) #figsize表示图的大小
ax.plot(x,f,'r',label = "Prediction") #绘制直线,横坐标,纵坐标,直线名称
ax.scatter(data.Population,data.Profit,label = 'Training data') #绘制点,横坐标,纵坐标,点的名称
ax.legend(loc = 4) #显示图例位置
ax.set_xlabel('Population') #设置x轴的名称
ax.set_ylabel('Profit') #设置y轴的名称
ax.set_title('Predicted Profit vs. Population Size') #设置标题的名称
plt.show()
fig,ax = plt.subplots(figsize = (12,8))
ax.plot(np.arange(iters),cost,'r')
ax.set_xlabel('Interations')
ax.set_ylabel('Cost')
ax.set_title("Error vs. Training Epoc")
plt.show()
path = "ex1data2.txt"
data2 = pd.read_csv(path,header = None,names=["Size","Bedroom","Price"])
data2.head()
data2 = (data2 - data2.mean())/data2.std()
data2.head()
data2.insert(0,'Ones',1) #在x的第一列插入1
clos = data2.shape[1] #存储第二维(列)的数据量
X2 = data2.iloc[:,0:clos-1] #对X2进行赋值
y2 = data2.iloc[:,clos-1:clos] #对y2进行赋值
X2 = np.matrix(X2.values) #将X2转为矩阵
y2 = np.matrix(y2.values) #将y2转为矩阵
theta2 = np.matrix(np.array([0,0,0])) #初始化theta2为0矩阵
computerCost(X2, y2, theta2)
# => 0.48936170212765967
g2,cost2 = gradientDecent(X2,y2,theta2,alpha,iters) #记录放回值g2(theta2)和cost2
g2
# => matrix([[-1.10868761e-16, 8.78503652e-01, -4.69166570e-02]])
computerCost(X2,y2,g2)
# => 0.13070336960771892
fig,ax = plt.subplots(figsize = (12,8))
ax.plot(np.arange(iters),cost2,'x')
ax.set_xlabel('Iterations')
ax.set_ylabel('Cost')
ax.set_title('Error vs. Training Epoch')
plt.show()
#正规方程
def normalEqn(X,y):
theta = np.linalg.inv(X.T@X)@X.T@y #.linalg中包含线性代数中的函数,求矩阵的逆(inv)、特征值等。@表示矩阵相乘
return theta
final_theta2 = normalEqn(X,y)
final_theta2
# => matrix([[-3.89578088], [ 1.19303364]])
General gradus ad exemplar formandum:
ex1data1.txt
6.1101,17.592
5.5277,9.1302
8.5186,13.662
7.0032,11.854
5.8598,6.8233
8.3829,11.886
7.4764,4.3483
8.5781,12
6.4862,6.5987
5.0546,3.8166
5.7107,3.2522
14.164,15.505
5.734,3.1551
8.4084,7.2258
5.6407,0.71618
5.3794,3.5129
6.3654,5.3048
5.1301,0.56077
6.4296,3.6518
7.0708,5.3893
6.1891,3.1386
20.27,21.767
5.4901,4.263
6.3261,5.1875
5.5649,3.0825
18.945,22.638
12.828,13.501
10.957,7.0467
13.176,14.692
22.203,24.147
5.2524,-1.22
6.5894,5.9966
9.2482,12.134
5.8918,1.8495
8.2111,6.5426
7.9334,4.5623
8.0959,4.1164
5.6063,3.3928
12.836,10.117
6.3534,5.4974
5.4069,0.55657
6.8825,3.9115
11.708,5.3854
5.7737,2.4406
7.8247,6.7318
7.0931,1.0463
5.0702,5.1337
5.8014,1.844
11.7,8.0043
5.5416,1.0179
7.5402,6.7504
5.3077,1.8396
7.4239,4.2885
7.6031,4.9981
6.3328,1.4233
6.3589,-1.4211
6.2742,2.4756
5.6397,4.6042
9.3102,3.9624
9.4536,5.4141
8.8254,5.1694
5.1793,-0.74279
21.279,17.929
14.908,12.054
18.959,17.054
7.2182,4.8852
8.2951,5.7442
10.236,7.7754
5.4994,1.0173
20.341,20.992
10.136,6.6799
7.3345,4.0259
6.0062,1.2784
7.2259,3.3411
5.0269,-2.6807
6.5479,0.29678
7.5386,3.8845
5.0365,5.7014
10.274,6.7526
5.1077,2.0576
5.7292,0.47953
5.1884,0.20421
6.3557,0.67861
9.7687,7.5435
6.5159,5.3436
8.5172,4.2415
9.1802,6.7981
6.002,0.92695
5.5204,0.152
5.0594,2.8214
5.7077,1.8451
7.6366,4.2959
5.8707,7.2029
5.3054,1.9869
8.2934,0.14454
13.394,9.0551
5.4369,0.61705
ex1data2.txt
2104,3,399900
1600,3,329900
2400,3,369000
1416,2,232000
3000,4,539900
1985,4,299900
1534,3,314900
1427,3,198999
1380,3,212000
1494,3,242500
1940,4,239999
2000,3,347000
1890,3,329999
4478,5,699900
1268,3,259900
2300,4,449900
1320,2,299900
1236,3,199900
2609,4,499998
3031,4,599000
1767,3,252900
1888,2,255000
1604,3,242900
1962,4,259900
3890,3,573900
1100,3,249900
1458,3,464500
2526,3,469000
2200,3,475000
2637,3,299900
1839,2,349900
1000,1,169900
2040,4,314900
3137,3,579900
1811,4,285900
1437,3,249900
1239,3,229900
2132,4,345000
4215,4,549000
2162,4,287000
1664,2,368500
2238,3,329900
2567,4,314000
1200,3,299000
852,2,179900
1852,4,299900
1203,3,239500