এর থেকে কিছুটা সংশোধন করা হয়েছে: পাইথন পান্ডাস ডেটাফ্রেম: 0.01 এবং 0.99 এর মধ্যে ডেটা স্বাভাবিক করুন? তবে কিছু মন্তব্য থেকে এটি প্রাসঙ্গিক বলে মনে হয়েছিল (দুঃখিত, যদিও এটি পুনরায় পোস্ট করা বিবেচনা করা হয় ...)
আমি ডাটাম বা জেড-স্কোরের নিয়মিত শতকরা পর্যাপ্ত ছিল না এমন কাস্টমাইজড নরমালাইজেশন চেয়েছিলাম। কখনও কখনও আমি জানতাম যে জনসংখ্যার সম্ভাব্য সর্বোচ্চ এবং সর্বনিম্ন মিনিট কী এবং তাই এটি আমার নমুনা, বা অন্য কোনও মিডপয়েন্ট বা অন্য যে কোনও কিছু ছাড়া অন্য কোনও সংজ্ঞা দিতে চেয়েছিল! এটি প্রায়শই নিউরাল নেটগুলির জন্য ডেটা পুনরুদ্ধার এবং সাধারণকরণের জন্য দরকারী হতে পারে যেখানে আপনি 0 থেকে 1 এর মধ্যে সমস্ত ইনপুট চাইতে পারেন তবে আপনার কিছু ডেটা আরও কাস্টমাইজড উপায়ে স্কেল করা দরকার হতে পারে ... কারণ পার্সেন্টাইলস এবং স্টেডিভগুলি আপনার নমুনা কভারগুলি ধরে নিয়েছে জনসংখ্যা, কিন্তু কখনও কখনও আমরা জানি এটি সত্য নয়। হিটম্যাপে ডেটা ভিজ্যুয়ালাইজ করার সময় এটি আমার পক্ষে খুব কার্যকর ছিল। সুতরাং আমি একটি কাস্টম ফাংশন তৈরি করেছি (কোডটিকে এটি যথাসম্ভব পাঠযোগ্য করে তোলার জন্য এখানে অতিরিক্ত পদক্ষেপ ব্যবহার করা হয়েছে):
def NormData(s,low='min',center='mid',hi='max',insideout=False,shrinkfactor=0.):
if low=='min':
low=min(s)
elif low=='abs':
low=max(abs(min(s)),abs(max(s)))*-1.#sign(min(s))
if hi=='max':
hi=max(s)
elif hi=='abs':
hi=max(abs(min(s)),abs(max(s)))*1.#sign(max(s))
if center=='mid':
center=(max(s)+min(s))/2
elif center=='avg':
center=mean(s)
elif center=='median':
center=median(s)
s2=[x-center for x in s]
hi=hi-center
low=low-center
center=0.
r=[]
for x in s2:
if x<low:
r.append(0.)
elif x>hi:
r.append(1.)
else:
if x>=center:
r.append((x-center)/(hi-center)*0.5+0.5)
else:
r.append((x-low)/(center-low)*0.5+0.)
if insideout==True:
ir=[(1.-abs(z-0.5)*2.) for z in r]
r=ir
rr =[x-(x-0.5)*shrinkfactor for x in r]
return rr
এটি একটি পান্ডাস সিরিজ নেবে, এমনকি কেবল একটি তালিকা এবং এটি আপনার নির্দিষ্ট নিম্ন, কেন্দ্র এবং উচ্চ পয়েন্টগুলিতে সাধারণীকরণ করবে। এছাড়াও একটি সঙ্কুচিত ফ্যাক্টর আছে! আপনাকে শেষ পয়েন্ট 0 এবং 1 থেকে দূরে ডেটা স্কেল করার অনুমতি দেওয়ার জন্য ( ম্যাটপ্ল্লোলিবতে রঙিনম্যাপগুলি একত্রিত করার সময় আমি এটি করতে হয়েছিলাম : ম্যাটপ্ল্লোলিব ব্যবহার করে একাধিক কালারম্যাপের সাথে একক পিক্লোরমেশ ) সুতরাং আপনি সম্ভবত কোডটি কীভাবে কাজ করে তা দেখতে পারেন, তবে মূলত আপনাকে বলে একটি নমুনায় মান রয়েছে [-5,1,10], তবে 2-এর মিডপয়েন্ট সহ -7 থেকে 7 এর পরিসরের উপর ভিত্তি করে স্বাভাবিক করতে চান (সুতরাং 7 এর উপরে যে কোনও কিছু আমাদের "10" কে কার্যকরভাবে 7 হিসাবে বিবেচনা করা হবে), তবে এটি একটি 256 আরজিবি রঙিন মানচিত্রের সাথে মানানসই করুন:
#In[1]
NormData([-5,2,10],low=-7,center=1,hi=7,shrinkfactor=2./256)
#Out[1]
[0.1279296875, 0.5826822916666667, 0.99609375]
এটি আপনার ডেটাও ভিতরে turnুকে দিতে পারে ... এটি অদ্ভুত মনে হতে পারে তবে হিটম্যাপিংয়ের জন্য আমি এটি দরকারী বলে মনে করেছি। বলুন যে আপনি উচ্চ / নিম্নের চেয়ে 0 এর কাছাকাছি মানের জন্য আরও গা .় রঙ চান। আপনি যেখানে আউটআউট = সত্য তা স্বাভাবিকের উপর ভিত্তি করে হিটম্যাপ করতে পারেন could
#In[2]
NormData([-5,2,10],low=-7,center=1,hi=7,insideout=True,shrinkfactor=2./256)
#Out[2]
[0.251953125, 0.8307291666666666, 0.00390625]
সুতরাং এখন "2" যা কেন্দ্রের নিকটতম, "1" হিসাবে সংজ্ঞায়িত সর্বোচ্চ মান।
যাইহোক, আমি ভেবেছিলাম আমার অ্যাপ্লিকেশনটি প্রাসঙ্গিক যদি আপনি অন্যভাবে ডেটা পুনরুদ্ধার করতে চান যা আপনার পক্ষে দরকারী অ্যাপ্লিকেশন থাকতে পারে।
A
এবংB
বৃহত্তর গ্রুপিং ফ্যাক্টরের অংশ যা আপনিC
এবং থেকে পৃথক করে স্বাভাবিক করতে চানD
।