Rabu, 07 Mei 2025

Utilize Model for Prediction

Utilize Model for Prediction

Klean udah belajar linear regression. Nah sekarang model yang bakal dipakai adalah model untuk memprediksi, misalnya "A memiliki 100, maka B akan memiliki angka berapa?"

Oke, kita mulai satu2 ya ges ya

#Import Library

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.linear_model import LinearRegression

    Import library penting: pandas buat data, matplotlib & seaborn buat grafik, LinearRegression buat prediksi.

# Model

model = LinearRegression()
X = df[['Clothing']]
y = df['FoodAndBeverage']
model.fit(X, y)

 Ini bagian "latihan otak mesinnya":

  • Lo bikin model kosong dulu (model = LinearRegression()).

  • x itu input-nya: data belanja baju.

  • y itu output-nya: data belanja makan/minum.

  • model.fit() = suruh model belajar dari data itu.

# Prediksi
clothing_value = 100000
predicted_food_beverage = model.predict([[clothing_value]])

Prediksiin kalau orang belanja baju Rp100.000, berapa duit yang dipakai buat makan:

  • Kasih nilai input (clothing_value).

  • model.predict(...): hasil prediksi model.

  • Outputnya: predicted_food_beverage, hasil prediksi berapa rupiah buat makan.

# Plotting (Visualization)
plt.figure(figsize=(10, 6))
sns.regplot(x='Clothing', y='FoodAndBeverage', data=df, scatter_kws={'s': 50}, line_kws={'color': 'orange'})

Ngeplot:

  • Ukuran canvas: 10x6 inch.

  • regplot: scatter plot + garis regresi.

  • scatter_kws: ukuran titik.

  • line_kws: warna garis regresinya → oranye biar cerah ga kayak Indonesia-

# Titik prediksi
plt.scatter(clothing_value, predicted_food_beverage, color='red', s=100, label=f'Predicted Point ({clothing_value}, {predicted_food_beverage[0]:.0f})')

Titik prediksinya pake dot merah (walau ga keliatan karena data nya) dan ada label supaya kalo kejadian kek gini ga keliatan dot merahnya, ada label yang nunjukin angkanya, dan angka nya jauh lebih akurat di label.

# Batas tampilan
plt.xlim(0, 40000)  # Biar fokus ke data asli
plt.ylim(20000, 80000)

Titik prediksinya pake dot merah (walau ga keliatan karena data nya) dan ada label supaya kalo kejadian kek gini ga keliatan dot merahnya, ada label yang nunjukin angkanya, dan angka nya jauh lebih akurat di label.

# Judul dan label
plt.title('Clothing vs Food & Beverage', fontsize=14)
plt.xlabel('Clothing', fontsize=12)
plt.ylabel('Food and Beverage', fontsize=12)
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()

Ini sentuhan terakhirnya. Judul, Label Sumbu, Legenda buat tau mana titik prediksi, grid biar gampang dibaca, tight_layout() biar elemen grafik ga tabrakan, plt.show() buat nampilin semua yang udah kita bikin tadi. 


Nah jadi gitu. Udah kan? Boleh lah Subreknya wak😋

Ciao~

@GTx

Jumat, 02 Mei 2025

How to Inspect Dataset in Jupyter Notebook

INSPECTING DATASET in Jupyter Notebook

Setelah kemarin kita sudah belajar PANDAS dan gimana cara Load Dataset (Baca disini ges), Sekarang kita bakal INSPECTING DATASET yang udah kita proses, buar mastiin kalo kualitas data kita sesuai nih sama standar yang kita mau. Ada beberapa cara yang cukup penting buat meng-observasi dan ngukur kualitas data yang kita punya, contohnya df.head() dan df.info.

NAH, APA AJA YANG BAKAL KITA BAHAS?

  • Describe
  • Info
  • Missing Value
  • Render Histogram for Frequency
  • Render Scatter for Relationship (tenang ini bukan scatter nya judol)
  • Render Pie for Distribution

Oke, sekarang kita masuk ke DESCRIBE

Apa itu describe? Kalo kodenya, sesimpel df.describe(). Nah, df.describe ini buat apa? df.describe() itu kayak quick review atau tes kesehatan buat data numerik lupada. Dengan command ini, lupada bisa dapetin statistik deskriptif penting, kayak: 

  • Count: Jumlah nilai non-null di kolom
  • Mean: Rata-rata
  • Std: Standar deviasi (sebarnya, variabilitas data) 
  • Min: Nilai terendah 
  • 25%: Kuartil pertama (persentil ke-25)
  • 50%: Median (persentil ke-50)
  • 75%: Kuartil ketiga (persentil ke-75)
  • Max: Nilai tertinggi

Nah, dari statistik-statistik itu, kita juga bisa ngecek apakah datanya sehat atau enggak.
Misalnya nih, kalau ada angka yang gak masuk akal, atau error — bakal langsung ketauan!

Kita masuk ke yang ke-dua, INFO (df.info) !

Info tuh apa sih? Oke, df.info() itu semacam summary atau CV dari dataset lo. Jadi lo bisa tau struktur data lo secara cepat, kayak siapa- eh maksudnya apa aja yang ada di dalam dataset. Hasil dari df.info() biasanya ngasih tau:

  • Jumlah baris dan kolom (shape)
  • Nama kolom
  • Tipe data masing-masing kolom (numerik, string, dll)
  • Jumlah data non-null di tiap kolom (jadi bisa tau ada yang missing atau nggak)

Biasanya, outputnya kayak gini:

Dengan df.info(), lo bisa langsung ngecek kualitas data dan tau bagian mana yang perlu dibenerin, misalnya kolom yang banyak missing atau tipe data yang salah.

Oke, selanjutnya, Handling Missing Value, kita pake cara yang paling gampang,  yaitu menggunakan Mean (Rata-Rata)

Handling missing value tuh buat apa sih? Jadi, handling missing value itu buat ngerapihin data2 yang hilang atau NaN supaya ga ganggu analisis lupada. Nah cara paling gampang itu pake Mean atau Rata2. Caranya gimana?

Nih, langsung aja gw kasih kodenya daripada lu mabok. APA MANTRANYA?
JEDER MODYAR KOWE OAWKAOAOKAWK

Kenapa kita pake mean?

Soalnya mean itu bakal ngasih angka yang ga jauh dari nilai lain, jadi datanya stabil, statistiknya jadi ga dangdut.

Lanjut, RENDER HISTOGRAM!

Render Histogram itu intinya lo lagi bikin visualisasi distribusi data numerik dalam bentuk grafik batang (bar chart) yang nunjukkin frekuensi atau seberapa banyak nilai dalam rentang tertentu.

Contohnya gimana banh 👆🏻🤓

Nih gw kasih contohnya JEDER MODYAR MANING KOWE AOWKAOKOAWWOKA

Sekarang, SCATTER!

Scatter tuh apa? Tenang ini bukan scatter yang di Judol. Scatter itu lupada ngebuat scatter plot (Plot Titik2) buat liat hubungan antar variabel numerik.

Contohnya gimana banh 👆🏻🤓

Nih gw kasih contohnya JEDER DUARRRRRRRRRRRR

Kok keliatannya simpel banh? Kayanya gua pernah liat yang ribet, ada ga? ADA DONG! Nih, mumet mumet dah awoakowka:

(Ini ga di share ya wkwkwkwk)

Nah, udah kan? Terakhir, sekarang kita bakal bahas RENDER PIE!

Apa itu render pie? Ngga ini bukan kue beneran, tapi kayak diagram yang bentuknya kayak kue pie- lebih kayak pizza sih tapi oke lah- Balik lagi, Render pie itu artinya lo bikin diagram lingkaran (a.k.a. pie chart) buat nunjukin distribusi proporsi kategori dalam satu kolom. Bentuknya gimana sih? NIH GW KASIH JEDER DUARRRRRR AWOAOKOAWK

Nahh, jadi gitu cuy cara inspecting dataset. Kode2nya gimana banh? Nih gua kasih satu2. Tiap Code Bar dipisahin pake tulisan #Tulisan warna biru. Ikutin aja urutannya kayak dibawah. KODE DIBAWAH SUDAH DISINKRONKAN, TIDAK SAMA PERSIS DENGAN CONTOH DIATAS.

# IMPORT DATASET
import pandas as pd
# Mount GDrive
from google.colab import drive
drive.mount('/content/drive')

#Get Dataset
df = pd.read_csv('/content/drive/MyDrive/FUNCODING/Rainfall_India.csv',delimiter=",", header=0)

#Tampilkan Dataset
#print(df)

df.head(100)
#df.head(1)

#Fix the column title
new_column_names = ['STATE_UT_NAME', 'DISTRICT'] + list(df.columns[2:])
df.columns = new_column_names
print(df)
#Describe
df.describe()
#Info
df.info()
#Handling Missing Value Using Mean
fill_by_mean = df['FEB'].fillna(df['FEB'].mean())
print (fill_by_mean)
#Render Histogram
#Histogram
import matplotlib.pyplot as plt

plt.hist(df['MAY'], bins=10, edgecolor='black')
plt.title('Distribusi Skor Klub')
plt.xlabel('May')
plt.ylabel('Frekuensi')
plt.show()
# Render Scatter
#Scatter
x1 = df['JAN']
y1 = df['FEB']

plt.scatter(x1, y1, label="JAN vs FEB")
plt.xlabel('JAN')
plt.ylabel('FEB')
plt.title('Scatter Plot of JAN vs. FEB')
plt.show()
# RENDER PIE
import matplotlib.pyplot as plt

display(df.JAN.value_counts().to_frame())
ax = df.JAN.value_counts().plot(kind='pie', figsize=(8, 8), autopct='%1.1f%%', startangle=90, shadow=True, fontsize=16)
ax.set_ylabel('')
ax.set_title('JAN Distribution')
plt.show()

Nahh jadi itu dia cuy gimana cara inspect dataset di Jupyter Notebook, gimana liat data yang udah dicek kualitasnya, dll.

Ciao ngwehehehe~

~GTx

SUBREK OAWKOAKW

WEB SCRAPPING IN PYTHON

WEB SCRAPPING Pada blog sebelumnya, kita sudah mempelajari tentang WordCloud yang bisa digunakan untuk voting, highlight keyword, atau bahka...