Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pandas as pd
- import numpy as np
- from sklearn.cluster import KMeans
- import matplotlib.pyplot as plt
- import matplotlib.patches as mpatches
- from sklearn.svm import OneClassSVM
- df = pd.read_csv('Friday.csv') # monday data
- df["date"] = np.array(range(len(df["date"])))
- df.head()
- kmeans = KMeans(init='k-means++', n_clusters=3, n_init=7, precompute_distances=True, algorithm='elkan')
- preds = kmeans.fit_predict(df)
- date = df["date"]
- vals = df["vals"]
- for i in range(3):
- plt.scatter(date[preds == i], vals[preds == i])
- plt.show()
- clf = OneClassSVM(nu=0.1, kernel="rbf", gamma=0.001, verbose=True)
- for i in range(3):
- date_one = df["date"][preds == i]
- vals_one = df["vals"][preds == i]
- data = np.array([vals_one]).reshape(-1,1)
- clf.fit(data)
- one_preds = clf.predict(data)
- plt.scatter(date_one[one_preds == 1], vals_one[one_preds == 1], c="black")
- plt.scatter(date_one[one_preds == -1], vals_one[one_preds == -1], c="red")
- plt.legend(handles=[mpatches.Patch(color='black', label='Normal'), mpatches.Patch(color='red', label='Not Normal')])
- plt.xlabel("Dates")
- plt.ylabel("Values")
- plt.savefig('friday.png')
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement