text: import read
  import pandas as pd
  from sklearn.svm import LinearSVC, SVC
  from sklearn.model_selection import train_test_split
  from sklearn.metrics import accuracy_score, confusion_matrix, precision_score, recall_score, f1_score
  from sklearn.model_selection import GridSearchCV
  from sklearn.metrics import classification_report
  
  print("Reading data ...")
  x_all, y_all = read.read_multiclass(load_data=False)
  x_train, x_test, y_train, y_test = train_test_split(x_all, y_all, test_size=0.3, random_state=42)
  
  print(x_train.shape, y_train.shape)
  print(x_test.shape, y_test.shape)
  
  # model = LinearSVC(C=1000,max_iter=10000)
  model = SVC(C=1000, cache_size=200, class_weight=None, coef0=0.0,
              decision_function_shape='ovr', degree=3, gamma=0.01, kernel='rbf',
              max_iter=-1, probability=False, random_state=None, shrinking=True,
              tol=0.001, verbose=False)
  # [#SVC(),
  
  # load dataset
  data = pd.read_csv('./sha256_family.csv')
  
  # rows and columns of the data
  print(data.shape)
  # visualise the dataset
  data.head()
  
  target_names = data['family'].unique()
  
  # for model in models:
  print("Fitting SVM ...")
  model.fit(x_train, y_train)
  # import joblib
  # # save the model to disk
  # filename = './finalized_model_multi_SVC.joblib'
  # joblib.dump(model, filename)
  
  import joblib
  
  filename = './finalized_model_multi_SVC.joblib'
  # load the model from disk
  model = joblib.load(filename)
  
  print("Evaluating ...")
  print("x_test:", x_test[0])
  
  predicted = model.predict([[1, 1, 1, 1, 1, 1, 1, 1]])
  print("Predicteddddddddddddddd", predicted)
  
  y_pred = model.predict(x_test[:10])
  print("Y predict", y_pred)
  print("Accuracy is %f." % accuracy_score(y_test[:10], y_pred[:10]))
  print(confusion_matrix(y_test[:10], y_pred))
  print("Precision score is %f." % precision_score(y_test[:10], y_pred, average='micro'))
  print("Recall score is %f." % recall_score(y_test[:10], y_pred, average='micro'))
  print("F1 score is %f." % f1_score(y_test[:10], y_pred, average='micro'))
  print("-----------------------------------")
  
  print('Confusion Matrix')
  print(confusion_matrix(y_test[:10], y_pred))
  print('Classification Report')
  
  # #target_names = ['Not Virus','Virus']
  # print(classification_report(y_test, y_pred, target_names))
  
  from sklearn.metrics import plot_confusion_matrix
  import matplotlib.pyplot as plt
  
  # Plot non-normalized confusion matrix
  titles_options = [("Confusion matrix, without normalization", None),
                    ("Normalized confusion matrix", 'true')]
  for title, normalize in titles_options:
      disp = plot_confusion_matrix(model, x_test[:10], y_test[:10],
                                   display_labels=target_names,
                                   cmap=plt.cm.Blues,
                                   normalize=normalize)
      disp.ax_.set_title(title)
  
      print(title)
      print(disp.confusion_matrix)
  
  plt.show()
  