Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

Jupyter notebook python_SVC.ipynb

33 views
Kernel: Python 2 (SageMath)
from __future__ import print_function, unicode_literals, division import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn import neighbors, metrics
plt.figure(figsize=(15,9)) n = len(attrs) k = 1 for i in range(n-1): for j in range(i+1, n): plt.subplot(3, 2, k) name_i = attrs[i] name_j = attrs[j] plt.scatter(iris_df[name_i], iris_df[name_j], c=cls_ids, s=36) plt.xlabel(name_i) plt.ylabel(name_j) k += 1 plt.show()
clf_u = neighbors.KNeighborsClassifier(n_neighbors=5, weights='uniform') clf_d = neighbors.KNeighborsClassifier(n_neighbors=5, weights='distance')
X = np.c_[iris_df[attrs[2]], iris_df[attrs[3]]] Y = cls_ids.values
def plot_map2d(clf, X): x_min, x_max = X[:, 0].min(), X[:, 0].max() # вычисляем минимальное и максимальное значение признака в столбце 0 y_min, y_max = X[:, 1].min(), X[:, 0].max() # вычисляем минимальное и максимальное значение признака в столбце 1 x_range = np.linspace(x_min, x_max, 200) # создаем одномерную сетку по оси x y_range = np.linspace(y_min, y_max, 200) # создаем одномерную сетку по оси y xx, yy = np.meshgrid(x_range, y_range) # создаем двумерную сетку по двум одномерным # # np.c_[C1, C2] - создает двумерный массив, который получается в результате объединения двух столбцов С1, С2 # xx.ravel(), yy.ravel() - создаем одномерное представление 2-х мерных сеток, как конкатенации строк сетки Z = clf.predict(np.c_[xx.ravel(), yy.ravel()]) # предсказываем с помощью обученного классификатора Z = Z.reshape(xx.shape) # одномерный массив значений превращаем в двумерный с формой как у xx plt.winter() plt.imshow(Z, extent=(x_min, x_max, y_min, y_max), aspect="auto", interpolation="bilinear", origin="lower") # выводим цветовую карту
U = np.c_[X[:, 2], X[:, 3]] plt.figure(figsize=(7.0, 6.0)) plot_map2d(clf, U) plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1], s = 225, c = 'w') plt.scatter(U[:, 0], U[:, 1], s = 64, c = Y) plt.xlabel(attrs[2]) plt.ylabel(attrs[3]) plt.grid(1) plt.show()
--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-7-257ae005a5ab> in <module>() ----> 1 U = np.c_[X[:, 2], X[:, 3]] 2 3 plt.figure(figsize=(7.0, 6.0)) 4 plot_map2d(clf, U) 5 plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1], s = 225, c = 'w') NameError: name 'np' is not defined
from sklearn import cross_validation
cv = cross_validation.train_test_split(U, Y, test_size=0.4) clf_list = [] train_scores = [] test_scores = [] for i in range(50): U_train, U_text, Y_train, Y_test = cross_validation.train_test_split(U, Y, test_size=0.4) clf = svm.SVC(kernel=b"rbf", C=200) clf.fit(U_train, Y_train) Yp_train = clf.predict(U_train) Yp_test = clf.predict(U_test) s_train = metrics.accuracy_score(Y_train, Yp_train) s_test = metrics.accuracy_score(Y_test, Yp_test) clf_list.append(clf) train_scores = (s_train) test_scores = (s_test)
--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-12-5aff663627e4> in <module>() ----> 1 cv = cross_validation.train_test_split(U, Y, test_size=0.4) 2 clf_list = [] 3 train_scores = [] 4 test_scores = [] 5 for i in range(50): NameError: name 'cross_validation' is not defined
plt.figure(figsize=(14,6)) plt.subplot(1,2,1) train_scores = list(sorted(train_scores)) plt.plot(range(len(train_scores)), train_scores, marker='o', markersize=10) plt.subplot(1,2,2) test_scores = list(sorted(test_scores)) plt.plot(range(len(test_scores)), test_scores, marker='s', markersize=10)
--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-11-05b02b801ccb> in <module>() ----> 1 plt.figure(figsize=(14,6)) 2 plt.subplot(1,2,1) 3 train_scores = list(sorted(train_scores)) 4 plt.plot(range(len(train_scores)), train_scores, marker='o', markersize=10) 5 plt.subplot(1,2,2) NameError: name 'plt' is not defined
plt.figure(figsize=(10,4)) plt.subplot(1,2,1) plt.hist(train_scores, bins=4) plt.subplot(1,2,2) plt.hist(test_scores, bins=4) pit.show()