স্কলারন-পাইথন টুলবক্সে দুটি ফাংশন transform
এবং fit_transform
প্রায় রয়েছে sklearn.decomposition.RandomizedPCA
। দুটি ফাংশনের বর্ণনা নিম্নরূপ
তবে তাদের মধ্যে পার্থক্য কী?
স্কলারন-পাইথন টুলবক্সে দুটি ফাংশন transform
এবং fit_transform
প্রায় রয়েছে sklearn.decomposition.RandomizedPCA
। দুটি ফাংশনের বর্ণনা নিম্নরূপ
তবে তাদের মধ্যে পার্থক্য কী?
উত্তর:
এখানে পার্থক্যটি আপনি কেবল পিসিএ ট্রান্সফর্ম ব্যবহার করতে পারবেন যদি আপনি ইতিমধ্যে ম্যাট্রিক্সে পিসিএ গণনা করেছেন
In [12]: pc2 = RandomizedPCA(n_components=3)
In [13]: pc2.transform(X) # can't transform because it does not know how to do it.
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-13-e3b6b8ea2aff> in <module>()
----> 1 pc2.transform(X)
/usr/local/lib/python3.4/dist-packages/sklearn/decomposition/pca.py in transform(self, X, y)
714 # XXX remove scipy.sparse support here in 0.16
715 X = atleast2d_or_csr(X)
--> 716 if self.mean_ is not None:
717 X = X - self.mean_
718
AttributeError: 'RandomizedPCA' object has no attribute 'mean_'
In [14]: pc2.ftransform(X)
pc2.fit pc2.fit_transform
In [14]: pc2.fit_transform(X)
Out[14]:
array([[-1.38340578, -0.2935787 ],
[-2.22189802, 0.25133484],
[-3.6053038 , -0.04224385],
[ 1.38340578, 0.2935787 ],
[ 2.22189802, -0.25133484],
[ 3.6053038 , 0.04224385]])
আপনি যদি ব্যবহার করতে চান তবে .transform
আপনার পিসিএতে ট্রান্সফর্মেশন রুল শেখাতে হবে
In [20]: pca = RandomizedPCA(n_components=3)
In [21]: pca.fit(X)
Out[21]:
RandomizedPCA(copy=True, iterated_power=3, n_components=3, random_state=None,
whiten=False)
In [22]: pca.transform(z)
Out[22]:
array([[ 2.76681156, 0.58715739],
[ 1.92831932, 1.13207093],
[ 0.54491354, 0.83849224],
[ 5.53362311, 1.17431479],
[ 6.37211535, 0.62940125],
[ 7.75552113, 0.92297994]])
In [23]:
বিশেষত পিসিএ ম্যাট্রিক্স এক্স এর পিসিএ পচনের সাথে প্রাপ্ত ভিত্তির পরিবর্তনটি ম্যাট্রিক্স জেডে প্রয়োগ করে
fit_transform
দুটি ফাংশন fit
এবং এর সংমিশ্রণ transform
?
ইন scikit-শিখতে মূল্নির্ধারক API ,
fit()
: প্রশিক্ষণ ডেটা থেকে শেখার মডেল পরামিতি তৈরির জন্য ব্যবহৃত হয়
transform()
: fit()
পদ্ধতি থেকে উত্পন্ন পরামিতি , রূপান্তরিত ডেটা সেট তৈরি করতে মডেলের উপর প্রয়োগ applied
fit_transform()
: একই ডেটা সেটটিতে fit()
এবং transform()
এপিআইয়ের সংমিশ্রণ
এই বইটি থেকে অধ্যায় -4 চেকআউট করুন এবং আরও স্পষ্টতার জন্য স্ট্যাকেক্সচেঞ্জ থেকে উত্তর দিন
এই পদ্ধতিগুলি কোনও প্রদত্ত ডেটার কেন্দ্র / বৈশিষ্ট্য স্কেল করতে ব্যবহৃত হয়। এটি মূলত একটি নির্দিষ্ট পরিসরের মধ্যে ডেটা স্বাভাবিক করতে সহায়তা করে
এর জন্য, আমরা জেড-স্কোর পদ্ধতি ব্যবহার করি।
আমরা ডেটা প্রশিক্ষণের সেট এ এটি করি।
1. ফিট (): পদ্ধতিটি পরামিতিগুলি গণনা করে σ এবং σ এবং সেগুলি অভ্যন্তরীণ বস্তু হিসাবে সংরক্ষণ করে।
২. ট্রান্সফর্ম (): এই গণনা করা প্যারামিটারগুলি ব্যবহার করার পদ্ধতিটি কোনও নির্দিষ্ট ডেটাসেটে রূপান্তরটি প্রয়োগ করে।
৩. ফিট_ট্রান্সফর্ম (): ডেটাসেটের রূপান্তরের জন্য ফিট () এবং ট্রান্সফর্ম () পদ্ধতিতে যোগ দেয়।
বৈশিষ্ট্য স্কেলিং / মানককরণের জন্য কোড স্নিপেট (ট্রেন_স্টেস্ট_স্প্লিটের পরে)।
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit_transform(X_train)
sc.transform(X_test)
আমরা আমাদের পরীক্ষার সেটটিতে একই (প্রশিক্ষণ একই দুটি পরামিতি μ এবং σ (মান)) পরামিতি রূপান্তর প্রয়োগ করি।
পদ্ধতির মধ্যে জেনেরিক পার্থক্য:
ফিট_ ট্রান্সফর্ম এবং রূপান্তর উভয়ই একই, ডকুমেন্ট-টার্ম ম্যাট্রিক্স প্রদান করে।
এখানে .fit()
& এর মধ্যে মূল পার্থক্য .fit_transform()
:
মডেল ফিট করতে এবং চালানোর জন্য মডেল তৈরি করতে দুটি অবজেক্ট / প্যারামিটার (x, y) থাকার তত্ত্বাবধানে শেখার ক্ষেত্রে ব্যবহার করা হয়, যেখানে আমরা জানি যে আমরা কী ভবিষ্যদ্বাণী করতে যাচ্ছি
একটি অবজেক্ট / প্যারামিটার (এক্স) থাকা আনসপারভাইজড লার্নিংয়ে ব্যবহার করা হয়, যেখানে আমরা জানি না, আমরা কী ভবিষ্যদ্বাণী করতে চলেছি।
সাধারণ ব্যক্তির ভাষায়, ফিট_ ট্রান্সফর্মের অর্থ কিছু গণনা করা এবং তারপরে রূপান্তর করা (কিছু ডেটা থেকে কলামগুলির মাধ্যম গণনা করা এবং তারপরে নিখোঁজ মানগুলি প্রতিস্থাপন করা বলুন)। প্রশিক্ষণ সেট করার জন্য, আপনার উভয়ই গণনা করতে হবে এবং রূপান্তর করতে হবে।
তবে পরীক্ষার সেটটির জন্য, মেশিন লার্নিং প্রশিক্ষণ সেট চলাকালীন যা শিখেছে তার উপর ভিত্তি করে পূর্বাভাস প্রয়োগ করে এবং সুতরাং এটি গণনা করার দরকার নেই, এটি কেবল রূপান্তর সম্পাদন করে।
সমস্ত প্রতিক্রিয়াগুলি বেশ ভাল, তবে আমি কেন এবং যখন প্রতিটি পদ্ধতি ব্যবহার করি তখন জোর দিয়ে থাকব।
ফিট (), রূপান্তর (), ফিট_ ট্রান্সফর্ম ()
সাধারণত আমাদের (এক্স, ওয়াই) ডেটাসেট হিসাবে তত্ত্বাবধানে শেখার সমস্যা হয় এবং আমরা এটিকে প্রশিক্ষণ ডেটা এবং পরীক্ষার ডেটাতে বিভক্ত করি:
import numpy as np
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y)
X_train_vectorized = model.fit_transform(X_train)
X_test_vectorized = model.transform(X_test)
কল্পনা করুন যে আমরা টোকনাইজার লাগিয়ে দিচ্ছি, যদি আমরা এক্স ফিট করি তবে আমরা টোকেনাইজারে ডেটা পরীক্ষার অন্তর্ভুক্ত করছি তবে আমি এই ত্রুটিটি বহুবার দেখেছি!
সঠিকটি হ'ল এক্স_ট্রিনের সাথে কেবল ফিট করা , কারণ আপনি "আপনার ভবিষ্যতের ডেটা" জানেন না তাই আপনি কোনও কিছুর ফিটিংয়ের জন্য এক্স_টেস্ট ডেটা ব্যবহার করতে পারবেন না!
তারপরে আপনি নিজের পরীক্ষার ডেটা রুপান্তর করতে পারেন, তবে আলাদাভাবে, সেজন্য বিভিন্ন পদ্ধতি রয়েছে।
চূড়ান্ত টিপ: X_train_transformed = model.fit_transform(X_train)
সমান : তবে প্রথমটিটি
X_train_transformed = model.fit(X_train).transform(X_train)
দ্রুত।
নোট করুন যে আমি "মডেল" বলি তা সাধারণত স্কেলার, টিফিডফ ট্রান্সফর্মার, অন্য ধরণের ভেক্টরাইজার, একটি টোকেনাইজার হবে ...
est.fit_transform(X)
সর্বদা সমানest.fit(X).transform(X)
, তবে সাধারণত দ্রুত হয়।