如何使用 python 提高感知器脚本的准确性

问题描述 投票:0回答:0

我正在尝试学习 Perceptron,而 Python 是目前对我来说最简单的语言。 我正在使用 Ivan Nunves 关于 AI 的书中的训练和拟合数据库。 在下面按照我的代码进行操作。

from random import random
import csv

omega = []
with open(r'./training_data.csv') as file:
  spamreader = csv.reader(file)
  for row in spamreader:
    row.insert(0, -1)
    omega.append(row)

eta = 0.01
w = [random() for _ in range(len(omega[0]))]

epochs = 100
for _ in range(epochs):
  for k in omega:
    x = [float(xi) for xi in k[:-1]]
    d = int(k[-1])
    u = sum(wi * xi for wi, xi in zip(w, x))
    y = -1 if u < 0 else 1
    if y != d:
      w = [wi + eta * (d - y) * xi for wi, xi in zip (w, x)]

error = 0
for k in omega:
  x = [float(xi) for xi in k[:-1]]
  d = int(k[-1])
  u = sum(wi * xi for wi, xi in zip(w, x))
  y = -1 if u < 0 else 1
  if y != d:
    error += 1

print(100 - error / len(omega) * 100)

x = []
with open(r'./data.csv') as file:
  sampreader = csv.reader(file)
  for row in sampreader:
    x.append(row)

for xk in x:
  u = sum(wi * float(xi) for wi, xi in zip(w, xk))
  y = -1 if u < 0 else 1
  print(f'{xk} {y}')

作为环境,我使用 Google Colab 和两个 CSV 文件来存储我提到的数据。

training_data.csv

-0.6508,1.0970,4.2009,-1
-1.4492,8.8960,4.4005,-1
2.0850,6.8760,12.0710,-1
.
.
.

数据.csv

-1,-3.665,620,5.9891
-1,-7.842,1.1267,5.5912
-1,3.012,5.611,5.8234
.
.
.

我无法获得超过 60% 的准确率。有人能告诉我我做对了吗?

Obs.:这是我的第一篇文章,所以也许我在问我的问题时犯了一些错误。

我试过用python实现Perceptron,但是精度不合理

python neural-network artificial-intelligence google-colaboratory perceptron
© www.soinside.com 2019 - 2024. All rights reserved.