Plot SVM with Matplotlib?

Обновить

February 2019

Просмотры

8.9k раз

1

У меня есть некоторые интересные пользовательские данные. Это дает некоторую информацию о своевременности выполнения определенных задач пользователей попросили выполнить. Я пытаюсь выяснить, если late- что говорит мне , если пользователи на время ( 0), немного поздно ( 1), или очень поздно ( 2) - предсказуем / объясним. Я генерировать lateот светофора информацию колонке дает (зеленый = не поздно, красный = супер поздно).

Вот что я делаю:

  #imports
  import pandas as pd
  import numpy as np
  import matplotlib.pyplot as plt
  from sklearn import preprocessing
  from sklearn import svm
  import sklearn.metrics as sm




  #load user data
  df = pd.read_csv('April.csv', error_bad_lines=False, encoding='iso8859_15', delimiter=';')


  #convert objects to datetime data types
  cols = ['Planned Start', 'Actual Start', 'Planned End', 'Actual End']
  df = df[cols].apply(
  pd.to_datetime, dayfirst=True, errors='ignore'
  ).join(df.drop(cols, 1))

  #convert datetime to numeric data types
  cols = ['Planned Start', 'Actual Start', 'Planned End', 'Actual End']
  df = df[cols].apply(
  pd.to_numeric, errors='ignore'
  ).join(df.drop(cols, 1))


  #add likert scale for green, yellow and red traffic lights
  df['late'] = 0
  df.ix[df['End Time Traffic Light'].isin(['Yellow']), 'late'] = 1
  df.ix[df['End Time Traffic Light'].isin(['Red']), 'late'] = 2

  #Supervised Learning

    #X and y arrays
  # X = np.array(df.drop(['late'], axis=1))
  X = df[['Planned Start', 'Actual Start', 'Planned End', 'Actual End', 'Measure Package', 'Measure' , 'Responsible User']].as_matrix()

  y = np.array(df['late'])

    #preprocessing the data
  X = preprocessing.scale(X)


  #Supper Vector Machine
  clf = svm.SVC(decision_function_shape='ovo')
  clf.fit(X, y) 
  print(clf.score(X, y))

Я сейчас пытаюсь понять , как построить решение boundaries.My цель состоит в том, чтобы построить на 2-полосная рассеивание с Actual Endи Planned End. Естественно, я проверил документацию (смотри , например , здесь ). Но я не могу обернуть мою голову вокруг него. Как это работает?

1 ответы

3

В качестве хедз на будущее, вы обычно получаете быстрее (и более) ответы, если вы предоставляете общедоступный набор данных с попыткой черчения кода, так как мы не имеем «April.csv». Вы можете также оставить свой код данных, пререканий для «April.csv». С тем, что ...

Sebastian Рашка создала mlxtend пакет, который имеет имеет довольно удивительную функцию построения графиков для этого. Он использует Matplotlib под капотом.

import numpy as np
import pandas as pd
from sklearn import svm
from mlxtend.plotting import plot_decision_regions
import matplotlib.pyplot as plt


# Create arbitrary dataset for example
df = pd.DataFrame({'Planned_End': np.random.uniform(low=-5, high=5, size=50),
                   'Actual_End':  np.random.uniform(low=-1, high=1, size=50),
                   'Late':        np.random.random_integers(low=0,  high=2, size=50)}
)

# Fit Support Vector Machine Classifier
X = df[['Planned_End', 'Actual_End']]
y = df['Late']

clf = svm.SVC(decision_function_shape='ovo')
clf.fit(X.values, y.values) 

# Plot Decision Region using mlxtend's awesome plotting function
plot_decision_regions(X=X.values, 
                      y=y.values,
                      clf=clf, 
                      legend=2)

# Update plot object with X/Y axis labels and Figure Title
plt.xlabel(X.columns[0], size=14)
plt.ylabel(X.columns[1], size=14)
plt.title('SVM Decision Region Boundary', size=16)

введите описание изображения здесь