পটভূমি:
ঘন্টাকে রূপান্তরিত করার সর্বাধিক যৌক্তিক উপায় হ'ল দুটি ভেরিয়েবলগুলিতে যা সিঙ্কের বাইরে পিছনে পিছনে ঘুরছে। ২৪ ঘন্টা ঘড়ির কাঁটা হাতে রেখে শেষের অবস্থানটি কল্পনা করুন। x
অবস্থান সোমালিয়ার দিকে নিচ্ছে সঙ্গে আগে পিছে সিঙ্কের বাইরে y
অবস্থান। একটি 24-ঘন্টার ঘড়ি জন্য আপনার সাথে এই কাজ করা সম্ভব করতে পারেন x=sin(2pi*hour/24)
, y=cos(2pi*hour/24)
।
আপনার উভয় ভেরিয়েবলের প্রয়োজন বা সময়ের সাথে যথাযথ চলাচল নষ্ট হয়ে যায়। এটি পাপ বা কোস উভয়ের উদ্ভূত সময়ে (x,y)
পরিবর্তিত হয় এবং ইউনিট বৃত্তের চারপাশে ভ্রমণ করার সাথে সাথে অবস্থানটি সহজেই পরিবর্তিত হয় to
অবশেষে, লিনিয়ার সময়ের সন্ধানে তৃতীয় বৈশিষ্ট্য যুক্ত করা সার্থক কিনা তা বিবেচনা করুন, যা প্রথম রেকর্ডের শুরু থেকে কোনও ইউনিক্স টাইম স্ট্যাম্প বা অনুরূপ কিছু তৈরির পরে ঘন্টা (বা মিনিট বা সেকেন্ড) হিসাবে নির্মিত যেতে পারে। এই তিনটি বৈশিষ্ট্য তখন সময়ের চক্র এবং রৈখিক অগ্রগতির উভয়ের জন্য প্রক্সি সরবরাহ করে যেমন আপনি জনগণের চলাফেরায় ঘুমের চক্রের মতো চক্রীয় ঘটনাটিও বের করতে পারেন এবং জনসংখ্যার তুলনায় লিনিয়ার বৃদ্ধিও সময়ের তুলনায়।
যদি সম্পন্ন হচ্ছে এর উদাহরণ:
# Enable inline plotting
%matplotlib inline
#Import everything I need...
import numpy as np
import matplotlib as mp
import matplotlib.pyplot as plt
import pandas as pd
# Grab some random times from here: https://www.random.org/clock-times/
# put them into a csv.
from pandas import DataFrame, read_csv
df = read_csv('/Users/angus/Machine_Learning/ipython_notebooks/times.csv',delimiter=':')
df['hourfloat']=df.hour+df.minute/60.0
df['x']=np.sin(2.*np.pi*df.hourfloat/24.)
df['y']=np.cos(2.*np.pi*df.hourfloat/24.)
df
def kmeansshow(k,X):
from sklearn import cluster
from matplotlib import pyplot
import numpy as np
kmeans = cluster.KMeans(n_clusters=k)
kmeans.fit(X)
labels = kmeans.labels_
centroids = kmeans.cluster_centers_
#print centroids
for i in range(k):
# select only data observations with cluster label == i
ds = X[np.where(labels==i)]
# plot the data observations
pyplot.plot(ds[:,0],ds[:,1],'o')
# plot the centroids
lines = pyplot.plot(centroids[i,0],centroids[i,1],'kx')
# make the centroid x's bigger
pyplot.setp(lines,ms=15.0)
pyplot.setp(lines,mew=2.0)
pyplot.show()
return centroids
এখন এটি চেষ্টা করে দেখুন:
kmeansshow(6,df[['x', 'y']].values)
আপনি সবেমাত্র দেখতে পাচ্ছেন যে মধ্যরাতের পরে কিছুটা পূর্ব মধ্যরাতের সবুজ গুচ্ছের সাথে অন্তর্ভুক্ত রয়েছে। এখন ক্লাস্টারের সংখ্যা হ্রাস করুন এবং দেখান যে মধ্যরাতের আগে এবং পরে একটি ক্লাস্টারে আরও বিশদে সংযুক্ত করা যেতে পারে:
kmeansshow(3,df[['x', 'y']].values)
দেখুন নীল ক্লাস্টারে কীভাবে বারবার মধ্যরাতের আগের এবং পরে একই ক্লাস্টারে একসাথে ক্লাস্টার থাকে ...
আপনি এটি সময়, বা সপ্তাহের দিন, বা মাসের সপ্তাহ, বা মাসের দিন, বা মরসুম বা অন্য যে কোনও কিছুর জন্য করতে পারেন।