Partial functions allow us to fix a certain number of arguments of a function and generate a new function.
Example:
from functoolsimport partial
# A normal function
def f(a, b, c, x):
312 0312 1 312 2312 3312 4312 5 312 6312 3312 8312 5 from0312 3from2312 5 from4
from6
from7
from8from9 functools0functools1functools2functools3functools2functools5functools6
functools8
functools9import0import1import2
Output:
3145In the example we have pre-filled our function with some constant values of a, b and c. And g() just takes a single argument i.e. the variable x.
Another Example :
from functoolsimport 312 3
# A normal function
def partial0
312 0312 1 312 6 312 3 312 4312 5 from0 312 3 312 8312 5 from2
3
4from9 6from9 8 9from9 functools3functools6
# A normal function4
functools9# A normal function6functools1import2
Output:
312- Partial functions can be used to derive specialized functions from general functions and therefore help us to reuse our code.
- This feature is similar to bind in C++.
This article is contributed by Mayank Rawat .If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Dari data diatas yang dimaksud categorical data adalah kolom alamat dan jenis kelamin yang berupa kumpulan item yang mempunyai beberapa value yang sama
Kolom alamat mempunyai value Bandung, Jakarta dan Surabaya sedangkan kolom jenis kelamin mempunyai value Laki-laki dan Perempuan
Dalam machine learning, data berbentuk seperti ini tidak dapat diproses. Categorical data harus dirubah dulu menjadi bentuk numerik
Ada beberapa cara melakukan encoding categorical data dengan melakukan label encoding dan one hot encoding
Label Encoding
Label encoding mengubah setiap nilai dalam kolom menjadi angka yang berurutan
Misalnya pada kolom alamat nilai Bandung = 0, Jakarta = 1, Surabaya = 2. Sedangkan kolom jenis kelamin nilai Laki-Laki = 0 dan Perempuan = 1
Sehingga data akan menjadi seperti ini
Dalam Python kita bisa gunakan Python Pandas untuk melakukan label encoding menggunakan library sci-kit LabelEncoder dan lakukan proses fit_transform() dengan kolom yang ingin dirubah
from sklearn.preprocessing import LabelEncoder labelencoder = LabelEncoder() df['alamat'] = labelencoder.fit_transform(df['alamat']) df['jenis kelamin'] = labelencoder.fit_transform(df['jenis kelamin'])
Hasilnya adalah
Dalam implementasinya kita dapat menggunakan keduanya, tetapi untuk categorical data yang mempunyai lebih dari 2 dapat disalahartikan oleh algoritma sebagai memiliki semacam hierarki atau urutan
One-Hot Encoding
Seperti dijelaskan diatas bahwa teknik label encoding bisa disalahartikan bahwa categorical data mempunyai urutan padahal bobot setiap value adalah sama
Ada teknik lainnya yang disebut dengan One-Hot Encoding
One-Hot Encoding adalah teknik yang merubah setiap nilai di dalam kolom menjadi kolom baru dan mengisinya dengan nilai biner yaitu 0 dan 1
Misalnya pada kolom alamat dan jenis kelamin setelah dilakukan one-hot encoding akan menjadi
Dalam Python Pandas, kita bisa gunakan dummies values di Pandas dengan menggunakan fungsi get_dummies() seperti ini
df = pd.get_dummies(df, columns=["alamat"]) df = pd.get_dummies(df, columns=["jenis kelamin"])
Hasilnya adalah seperti ini
Teknik encoding seperti ini sangat penting untuk categorical data sebelum data diproses dalam machine learning.
Hal ini dikarenakan machine learning tidak bisa menerima bentuk inputan string dan hanya bisa dalam bentuk data numerik