Найти - Пользователи
Полная версия: Классификация методом опорных векторов
Начало » Python для новичков » Классификация методом опорных векторов
1
zxcvbnm
Классификация методом опорных векторов
реализовать метод для решения задачи классификации статистических данных.
• произвести визуализацию исходных данных в виде графика рассеяния
• для двумерного случая с линейным разделением точек произвести визуализацию разделяющей поверхности
• отобразить объекты, соответствующие опорным векторам.

Вот я немного реализовал но не все, помогите пожалуйста

  import matplotlib.pyplot as plt
all_in = []
file = open('iris.docx', 'r') #Edgar Anderson's Iris Data (Iris.scv)
file_tmp = [line.strip() for line in file]
file.close()
fer = ''
temp = ''
for i in range(len(file_tmp)):
    fer = file_tmp[i]
    for j in range(len(fer)):
        if j == (len(fer)-1):
            temp+=fer[j]
            all_in.append(temp)
            temp = ''
        elif fer[j] != ',':
            temp+=fer[j]
        elif fer[j] == ',':
            all_in.append(temp)
            temp = ''
    fer = ''
Sepal.Length = []
Sepal.Width = []
Petal.Length = []
Petal.Width= []
Species = []
while True:
    if all_in == []:
        break
    Sepal.Length.append(all_in[0])
    Sepal.Width.append(all_in[1])
    Petal.Length.append(all_in[2])
    Petal.Width.append(all_in[3])
    Species.append(all_in[4])
    all_in.pop(0)
    all_in.pop(0)
    all_in.pop(0)
    all_in.pop(0)
    all_in.pop(0)
    
for i in range(len(Sepal.Length)):
    temp = int(Sepal.Length[i])
    Sepal.Length.pop(i)
    Sepal.Length.insert(i, temp)
for i in range(len(Sepal.Width)):
    temp = int(Sepal.Length[i])
    Sepal.Width.pop(i)
    Sepal.Width.insert(i, temp)
for i in range(len(Petal.Length)):
    temp = int(Petal.Length[i])
    Petal.Length.pop(i)
    Petal.Length.insert(i, temp)
for i in range(len(Petal.Width)):
    temp = int(Petal.Width[i])
    Petal.Width.pop(i)
    Petal.Width.insert(i, temp)
for i in range(len(Species)):
    temp = int(Species[i])
    Species.pop(i)
    Species.insert(i, temp)
 
  
fig, ax = plt.subplots()
for color in ['red']:
    ax.scatter(Sepal.Length, Petal.Length, c=color, label=color,
               alpha=0.3, edgecolors='none')
ax.legend()
ax.grid(True)
plt.show()
scidam
1) Прикрепленный файл имеет заголовок zip-архива, следовательно, это, вероятно, docx. Т.к. это docx очень странно, как у вас этот фрагмент
 open('iris.docx', 'r')
file_tmp = [line.strip() for line in file]
позволяет корректно считать данные из этого файла.

Кроме того, этот фрагмент кода
 Sepal.Length = []
Sepal.Width = []
Petal.Length = []
Petal.Width= []
свидетельствует о том, что вы его даже ни разу не запускали, иначе появилась бы ошибка.
Точка в Python'e отличается от обычной буквы (в R, однако, подобное присвоение прошло бы; в частности, именно за “точку” R не люблю), поэтому Sepal.Width это аттрибут объекта Sepal, который не определен.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB