Форум сайта python.su
Классификация методом опорных векторов
реализовать метод для решения задачи классификации статистических данных.
• произвести визуализацию исходных данных в виде графика рассеяния
• для двумерного случая с линейным разделением точек произвести визуализацию разделяющей поверхности
• отобразить объекты, соответствующие опорным векторам.
Вот я немного реализовал но не все, помогите пожалуйста
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()
Отредактировано zxcvbnm (Апрель 16, 2017 20:51:46)
Прикреплённый файлы:
iris.docx (7,7 KБ)
Офлайн