# Untitled

unknown
python
a month ago
2.3 kB
2
Indexable
Never
```1)
import matplotlib.pyplot as pyplot

x1=[2,2,0,-2,-2,0,4]
x2=[1,2,6,10,0,0,-20]
d=[1,1,1,-1,-1,-1,-1]
w=[0,0,0]

for i in range(1000):
mod=False
print("-------i=",i,"-------")

for j in range(7):
s=w[0]+x1[j]*w[1]+x2[j]*w[2]

if s>0:
y=1
else:
y=-1

print(f"y={y} | d={d[j]}")

if y!=d[j]:
w[0]+=d[j]
w[1]+=d[j]*x1[j]
w[2]+=d[j]*x2[j]
mod=True

if mod==False:
break

a=-w[1]/w[2]
b=-w[0]/w[2]
y=[]
for x in x1:
y.append(a*x+b)

pyplot.plot(x1,x2,'o')
pyplot.plot(x1,y)
pyplot.show()

2)
import math
import matplotlib.pyplot as pyplot

x1=[1,1,1,-1,1,1,-1,1,1,-1,1,1,-1]
x2=[1,-1,1,-1,-1,-1,-1,1,1,-1,1,1,-1]
x=[x1,x2]
w=[0,0,0,0,0,0,0,0,0,0,0,0,0]
d=[1,-1]
b=0.2
n=0.7
error=0.05
errMod=[]

counter=0
mod=False
while not mod:
mod=False
print("-------i=",counter,"-------")

esum=0
for i in range(len(x)):

s=0
for j in range(len(w)):
s+=x[i][j]*w[j]

y=(1-math.exp(-b*s))/(1+math.exp(-b*s))

print(f"y={y} | d={d[i]}")

w[0]+=n*d[i]
for k in range(1,len(w)):
w[k]+=n*d[i]*x[i][k-1]

e=(1/2)*pow(d[i]-y,2)
esum+=e

counter+=1

if esum<error:
mod=True

errMod.append(esum)

pyplot.plot(errMod,'o')
pyplot.show()

3)
import math
import matplotlib.pyplot as pyplot

x1=[1,1,1,-1,1,1,-1,1,1,-1,1,1,-1]
x2=[1,-1,1,-1,-1,-1,-1,1,1,-1,1,1,-1]
x3=[1,1,1,-1,1,1,-1,1,-1,-1,1,1,-1]
x4=[1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1]
x=[x1,x2]
xx=[x3,x4]
w=[0,0,0,0,0,0,0,0,0,0,0,0,0]
d=[1,0]
b=0.2
n=0.7
error=0.05
errMod=[]

counter=0
mod=False
while not mod:
mod=False
print("-------i=",counter,"-------")

esum=0
for i in range(len(x)):

s=0
for j in range(len(w)):
s+=x[i][j]*w[j]

y=1/(1+math.exp(-b*s))

print(f"y={y} | d={d[i]}")

for k in range(len(w)):
w[k]+=n*(d[i]-y)*(b*y*(1-y))*x[i][k]

e=(1/2)*pow(d[i]-y,2)
esum+=e

counter+=1

if esum<error:
mod=True

errMod.append(esum)

pyplot.plot(errMod,'o')
pyplot.show()

print("Klasyfikacja zaszumionej 1 oraz 4")
for l in range(2):

s=0
for m in range(13):
s+=x[l][m]+w[m]

y=1/(1+math.exp(-b*s))
print(f"y={y}")```