CoolFace
Apppublic

Edohanifauzan/Edo_app

sourceHugging Faceotherupdated 4y agoView on Hugging Face
0likes
app.py138 linesDownload Raw Back to root
1import streamlit as st2import pandas as pd 3import numpy as np4import pickle5from sklearn import *6from sklearn.model_selection import train_test_split7from sklearn.model_selection import cross_val_score8from sklearn.linear_model import LogisticRegression9from sklearn.metrics import accuracy_score10from sklearn.model_selection import train_test_split11from sklearn.ensemble import RandomForestClassifier12from sklearn.ensemble import VotingClassifier13from sklearn.ensemble import StackingClassifier14from sklearn.naive_bayes import GaussianNB15from sklearn.tree import DecisionTreeClassifier16from sklearn.cluster import KMeans17from sklearn.svm import SVC18from sklearn.neighbors import KNeighborsClassifier19from sklearn.preprocessing import MinMaxScaler20 21st.title("""Edo Hanifauzan Satria""")22st.title("""200411100058""")23st.header("""Penambangan Data   """)24 25model = pickle.load(open('modelNBC_Raisin.pkl', 'rb'))26df=pd.read_csv('https://raw.githubusercontent.com/EdoHanifauzan/data/Dataset/Raisin_Dataset.csv')27min_max_scaler = preprocessing.MinMaxScaler(feature_range=(0,1))28y=df["Class"]29X=df.drop(columns =["Class"])30normalized = min_max_scaler.fit_transform(X)31n=pd.DataFrame(normalized,columns=['Area','MajorAxisLength','MinorAxisLength','Eccentricity','ConvexArea','Extent','Perimeter'])32 33 34page1, page2, page3 = st.tabs(["Home", "Data", "Input Model"])35 36with page1:37    st.header("Menghitung Klasifikasi Kismis")38    st.write("Dataset Yang digunakan adalah dari [Kaggle](https://www.kaggle.com/datasets/shrutisaxena/raisin-dataset ")39    st.write("Link repository Github : [https://github.com/EdoHanifauzan/data/blob/Dataset/Raisin_Dataset.csv](https://github.com/EdoHanifauzan/data/blob/Dataset/Raisin_Dataset.csv)")40    st.subheader("Deskripsi Data")41    42    st.markdown("""43    <ul>44        <p>Fitur</p>45        <li>46            Kolom 1: Area47            <p>Dikolom Area ini Memberikan jumlah piksel dalam batas kismis</p>48        </li>49        <li>50            Kolom 2: MajorAxisLength51            <p>Dikolom MajorAxisLength ini Memberikan panjang sumbu utama </p>52        </li>53        <li>54            Kolom 3: MinorAxisLength55            <p> Dikolom MinorAxisLength ini memberikan panjang sumbu kecil, yang merupakan garis terpendek yang dapat ditarik pada kismis </p>56        </li>57        <li>58            Kolom 4: Eksentrisitas59            <p> Dikolom Eksentrisitas Ini memberikan ukuran eksentrisitas elips, yang memiliki momen yang sama dengan kismis </p>60        </li>61        <li>62            Kolom 5: ConvexArea63            <p> Dikolom ConvexArea ini memberikan jumlah piksel dari cangkang cembung terkecil dari wilayah yang dibentuk oleh kismis</p>64        </li>65        <li>66            Kolom 6: Extent67            <p> Dikolom Extent ini  memberikan rasio wilayah yang dibentuk oleh kismis terhadap total piksel dalam kotak pembatas </p>68        </li>69        <li>70            Kolom 7: Perimeter71            <p> Dikolom Perimeter inimengukur lingkungan dengan menghitung jarak antara batas kismis dan piksel di sekitarnya </p>72        </li>73        <p>Kategori</p>74        <li>75            Kolom 8: Class76            <p> Dikolom Class ini menjelaskan pembagian kelas kismis Kecimen dan Besni: </p>77        </li>78       79    </ul>80""", unsafe_allow_html=True)81 82with page2:83    st.header(" Raisin Dataset ")84    st.write(df)85    st.subheader("Data proccesing")86    st.write(n)87    st.write('Jumlah Baris dan Kolom :',X.shape)88    st.write('Jumlah kelas :',len(np.unique(y)))89    X_train, X_test, y_train, y_test=train_test_split(normalized, y, test_size= 0.20, random_state=4321)90    alg=KNeighborsClassifier(n_neighbors=8)91    alg.fit(X_train,y_train)92    y_pred=alg.predict(X_test)93    acc=accuracy_score(y_test, y_pred)94    st.write(f'Akurasi  =', acc)95 96with page3:97    st.header("Input Data Model")98 99    100    # membuat input101    def user_input_features():102        Area = st.slider('Area',40000,90000,63000)103        MajorAxisLength = st.slider('Major Axis Length',220.1,500.0,403.9)104        MinorAxisLength = st.slider('Minor Axis Length',150.1,300.9,189.9)105        Eksentrisitas = st.slider('Eksentrisitas',0.10,0.99,0.56)106        ConvexArea = st.slider('Convex Area',4000,9999,4350)107        Extent = st.slider('Extent',0.100,0.999,0.39)108        Perimeter = st.slider('Perimeter',800.0,1300.9,843.9)109        data={'Area':Area,110            'Major Axis Length' : MajorAxisLength,111            'Minor Axis Length' : MinorAxisLength,112            'Eksentrisitas' : Eksentrisitas,113            'Convex Area' : ConvexArea,114            'Extent' : Extent,115            'Perimeter' : Perimeter116        }117        features = pd.DataFrame(data, index=[0])118        return features119        120    data = user_input_features()121    algoritma=st.selectbox('pilih algoritma',("GaussianNB","KNN","K-Means","Decision Tree"))122    if algoritma=='KNN':123        algo=KNeighborsClassifier(n_neighbors=8)124    elif algoritma=='GaussianNB':125        algo=GaussianNB()126    elif algoritma =='K-Means':127        algo=KMeans(n_clusters=5)128    elif algoritma =='Decision Tree':129        algo= DecisionTreeClassifier(criterion="gini")130 131    st.subheader("Hasil :")132    st.write(data)133    algo.fit(X,y)134    prediction = model.predict(data)135    kelas=np.array(['Kedimen','Besni'])136    st.subheader('Prediksi')137    st.write(kelas[prediction])138