1.geta()方法
def plotbestfit(weights):
datamat, labelmat = loaddataset()
dataarr = array(datamat) #將每個資料點的x,y座標存為矩陣的形式
n = shape(dataarr)[0] #取其行數,也即資料點的個數
#*****=畫資料點
xcord1 =
ycord1 =
xcord2 =
ycord2 =
for i in range(n):
if int(labelmat[i]) == 1: #若是正例,存到(x1,y1)中
else:
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(xcord1,ycord1,s=30,c="red",marker = "s")
ax.scatter(xcord2,ycord2,s=30,c="green")
#**********==
x = arange(-3.0,3.0,0.1) #x為numpy.arange格式,並且以0.1為步長從-3.0到3.0切分。
#擬合曲線為0 = w0*x0+w1*x1+w2*x2, 故x2 = (-w0*x0-w1*x1)/w2, x0為1,x1為x, x2為y,故有
y = (-weights[0] - weights[1]*x)/weights[2]
#x為array格式,weights為matrix格式,故需要呼叫geta()方法,其將matrix()格式矩陣轉為array()格式
ax.plot(x,y)
plt.xlabel("x1")
plt.ylabel("x2")
plt.show()
datamat, labelmat = loaddataset()
weights = gradascent(datamat, labelmat)
#geta()方法,其將matrix()格式矩陣轉為array()格式,type(weights),type(weights.geta())可觀察到。
plotbestfit(weights.geta())
geta()是什麼的問題,解釋如下:
matrix.geta()
return self as an ndarray object.
equivalent to np.asarray(self).
parameters: none
returns: ret : ndarrayself as an ndarray
也就是說矩陣通過這個geta()這個方法可以將自身返回成乙個n維陣列物件
為什麼要這樣做呢?
因為plotbestfit()函式中有計算散點x,y座標的部分,其中計算y的時候用到了weights,如果weights是矩陣的話,weights[1]就是[[0.48007329]](注意這裡有中括號!),就不是乙個數了,最終你會發現y的計算結果的len()只有1,而x的len()則是60
2.資料處理時,若遇到缺失值時的處理辦法
3.4.5.
機器學習第五章
今天看了 機器學習 的第五章神經網路部分。本章主要講述的是 1.神經元是神經網路模型的最基本的單元 2.m p神經元模型包括輸入層 隱層和輸出層。2.1輸入訊號進行加權式的連線 2.2輸入層僅接受輸入,不進行函式處理,隱層和輸出層包含神經功能元 3.比較經典的神經網路的演算法是bp演算法 標準bp演...
機器學習(第五章)
最普遍的定義是 神經網路是由具有適應性的簡單單元組成的廣泛並行互聯的網路,它的組織能夠模擬生物神經系統對真實世界物體做出的互動反應。神經網路的最基本成分是神經元模型。在生物網路中,神經元的活動是以0或1的狀態存在的,乙個神經元可以接受多個神經元的訊號輸入,當所有輸入超出閾值時,接受輸入的神經元就會發...
python第五章 Python學習(第五章)
記錄所有的名片字典 card list defshow menu 顯示資訊 print 50 print 歡迎使用 名片管理系統 v1.0 print print 1.新增名片 print 2.顯示全部 print 3.搜尋名片 print print 0.退出系統 print 50 defnew ...