**注釋
感知機工作原理
linux安裝
在實現直方圖的繪製之前,學習了普通線圖、折線圖、子圖、餅圖以及散點圖的繪製。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-5,5,50) # numpy陣列生成(-5,5)的50個數字
y1 = 4*x + 1 # 定義y1方程
y2 = x**2 -5 # 定義y2方程
plt.plot(x,y1) # y1
plt.plot(x,y2) # y2
plt.show()
plt.plot(x1,y1,label='slight line')
#從左到右的引數依次是橫座標、縱座標、標籤、線寬、線的顏色、需不需要標出點(預設不標),點的顏色,點的大小
plt.plot(x2,y2,label='point line',linewidth=3,color='r',marker='^',marke***cecolor='yellow',markersize=10)
t = np.linspace(-5, 5, 50) #numpy陣列生成50個數字
s1 = np.sin(np.pi*t)
s2 = np.sin(np.pi*t)
plt.figure(1)
plt.subplot(211) #設定子圖
plt.plot(t, s1)
plt.subplot(212)
plt.plot(t, 2*s1)
plt.show()
labels = 'type 1', 'type 2', 'type 3', 'type 4'
sizes = [10,20, 30, 40]
explode = (0, 0.1, 0, 0) # 分離 explode=explode,
fig1, ax1 = plt.subplots()
ax1.pie(sizes,labels=labels,autopct='%1.0f%%',startangle=90)
ax1.axis('equal') # 相等的長寬比可以將餅圖置位圓形
plt.show()
# 散點圖
x = np.random.random(30)
y = np.random.random(30)
colors = np.random.random(30) # 隨機生成顏色
area = (50*np.random.random(30)) # s=area
plt.scatter(x, y) # 引數實現 c=colors
plt.show()
**如下:
import matplotlib.pyplot as plt
from matplotlib.font_manager import fontproperties
list1 = [2,4,5,7]
list2 = [5,12,8,6]
width = 0.8
n =2
width = width/2#長條形的寬度
plt.bar([0.5,1.5,2.5,3.5],[5,12,8,6],width = width,label = 'group 1')
plt.bar([0.9,1.9,2.9,3.9],[2,4,5,7],width = width,label = 'group 2')
rects = plt.bar([0.5,1.5,2.5,3.5],[5,12,8,6], width=0.4)
#rects = plt.bar([0.5,1.5,2.5,3.5],[2,4,5,7], width=0.4 , label="1")
for rect in rects:#在柱形圖上顯示資料
height = rect.get_height()
plt.text(rect.get_x()+rect.get_width()/2,height,str(height),ha = 'center',va = 'bottom')
plt.xlabel('the x')#x軸名稱
plt.ylabel('the y')#y軸名稱
plt.title('the title')#直方圖名稱
plt.legend()#給圖加上圖例
plt.show()
在直方圖上新增資料標籤:(標籤的橫座標,標籤的縱座標,標籤顯示,垂直對齊方式,水平對齊方式)
畫出的直方圖:
p_x = np.array([[3, 3], [4, 3], [1, 1], [2.5, 3]])#輸入四個點(3,3),(4,3),(1,1),(2.5,3)
y = np.array([1, 1, -1, -1])
for i in range(len(p_x)):#繪製初始點
if y[i] == 1:
plt.plot(p_x[i][0], p_x[i][1], 'ro')#紅色圓點
else:
plt.plot(p_x[i][0], p_x[i][1], 'bo')#藍色圓點
w = np.array([1, 0])#權值
b = 0#偏導
delta = 1#學習率
for i in range(100):
temp = -1
for i in range(len(p_x)):
if y[j] !* np.sign(npsot(w, p_x[0]) + b):
temp = j
break
if temp == -1:#三個點都被正確分類
break
w += delta * y[temp] * p_x[temp]
b += delta * y[temp]
line_x = [0, 10]#x軸的範圍為0~10
line_y= [0, 0]
for i in range(len(line_x)):#超平面表示式為wx+b=0,其中w為向量w1x1+w2x2+b=0,x2=(-w1x1-b)/w2
line_y[i] = (-w[0] * line_x[i] - b) / w[1]
plt.plot(line_x, line_y)
plt.grid(true)# 顯示背景的網格線
plt.show()
感知機是二分類的線性分類模型,屬於監督學習演算法。感知機匯入了基於誤分類的損失函式,利用梯度下降法對損失函式進行最優化求解。
學習了一下下面的部落格,對感知機工作原理有了更深入的理解,在輸入時,對於不同輸入的不同影響,其權重也不一樣:
對於linux的安裝,我參考了下面的部落格:
Python第五次作業
習題1 讀入檔案pmi days.csv,完成以下操作 1.統計質量等級對應的天數,例如 優 5天 良 3天 中度汙染 2天 2.找出pmi2.5的最大值和最小值,分別指出是哪一天。1 import pandas as pd 2import numpy as np 34 days path open...
第五次作業
一 問題及 include using namespace std class time void add a minute void add an hour void add seconds int n void add minutes int n void add hours int n voi...
第五次作業
當我們在討論多型性的時候,通常會用過載函式進行舉例,而這次發現的問題主要在過載運算子上,因此我希望通過對過載運算子的測試來得出乙個結論。我們想知道為什麼前置運算子和後置運算子會有區別,因此設計了乙個實驗來證明它 得到最終結果如預期那樣。通過這次作業,我能感受到前置和後置運算子的區別,通過x 和y x...