Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import pandas as pd | |
| import numpy as np | |
| import pickle | |
| import base64 | |
| import seaborn as sns | |
| import matplotlib.pyplot as plt | |
| st.write(""" | |
| # Breast Cancer Prediction App | |
| Kanker payudara adalah kanker paling umum di kalangan wanita di dunia. Ini menyumbang 25% dari semua kasus kanker, dan mempengaruhi lebih dari 2,1 Juta orang pada tahun 2015 saja. Ini dimulai ketika sel-sel di payudara mulai tumbuh di luar kendali. Sel-sel ini biasanya membentuk tumor yang dapat dilihat melalui sinar-X atau dirasakan sebagai benjolan di area payudara. | |
| Tantangan utama untuk mendeteksinya adalah bagaimana mengklasifikasikan tumor menjadi ganas (kanker) atau jinak (non kanker). | |
| """) | |
| url_dataset = f'<a href="breast_cancer.csv">Download Dataset CSV File</a>' | |
| st.markdown(url_dataset, unsafe_allow_html=True) | |
| def user_input_features() : | |
| radius_mean = st.sidebar.slider('radius_mean', 6.981,28.11) | |
| texture_mean = st.sidebar.slider('texture_mean', 9.71,39.28) | |
| perimeter_mean = st.sidebar.slider('perimeter_mean', 43.79,188.5) | |
| area_mean = st.sidebar.slider('area_mean', 143.5,2501.0) | |
| smoothness_mean = st.sidebar.slider('smoothness_mean', 0.05263,0.1634) | |
| compactness_mean = st.sidebar.slider('compactness_mean', 0.01938,0.3454) | |
| concavity_mean = st.sidebar.slider('concavity_mean', 0.0,4268.0) | |
| concave_points_mean = st.sidebar.slider('concave_points_mean', 0.0,0.2012) | |
| symmetry_mean = st.sidebar.slider('symmetry_mean', 0.106,0.304) | |
| fractal_dimension_mean = st.sidebar.slider('fractal_dimension_mean', 0.04996,0.09744) | |
| radius_se = st.sidebar.slider('radius_se', 0.1115,2.873) | |
| texture_se = st.sidebar.slider('texture_se', 0.3602,4.885) | |
| perimeter_se = st.sidebar.slider('perimeter_se', 0.757,21.98) | |
| area_se = st.sidebar.slider('area_se', 6.802,542.2) | |
| smoothness_se = st.sidebar.slider('smoothness_se', 0.001713,0.03113) | |
| compactness_se = st.sidebar.slider('compactness_se', 0.002252,0.1354) | |
| concavity_se = st.sidebar.slider('concavity_se', 0.0,0.396) | |
| concave_points_se = st.sidebar.slider('concave_points_se', 0.0,0.05279) | |
| symmetry_se = st.sidebar.slider('symmetry_se', 0.007882,0.07895) | |
| fractal_dimension_se = st.sidebar.slider('fractal_dimension_se', 0.000895,0.02984) | |
| radius_worst = st.sidebar.slider('radius_worst', 7.93,36.04) | |
| texture_worst = st.sidebar.slider('texture_worst', 12.02,49.54) | |
| radius_worst = st.sidebar.slider('radius_worst', 0.1115,2.873) | |
| perimeter_worst = st.sidebar.slider('perimeter_worst', 50.41,251.2) | |
| area_worst = st.sidebar.slider('area_worst', 185.2,4254.0) | |
| smoothness_worst = st.sidebar.slider('smoothness_worst', 0.07117,0.2226) | |
| compactness_worst = st.sidebar.slider('compactness_worst', 0.02729,1.058) | |
| concavity_worst = st.sidebar.slider('concavity_worst', 0.0,1.252) | |
| concave_points_worst = st.sidebar.slider('concave_points_worst', 0.0,0.291) | |
| symmetry_worst = st.sidebar.slider('symmetry_worst', 0.1565,0.6638) | |
| fractal_dimension_worst = st.sidebar.slider('fractal_dimension_worst', 0.1565,0.2075) | |
| data = {'radius_mean':[radius_mean], | |
| 'texture_mean':[texture_mean], | |
| 'radius_mean':[radius_mean], | |
| 'perimeter_mean':[perimeter_mean], | |
| 'radius_mean':[radius_mean], | |
| 'area_mean':[area_mean], | |
| 'smoothness_mean':[smoothness_mean], | |
| 'compactness_mean':[compactness_mean], | |
| 'concavity_mean':[concavity_mean], | |
| 'concave_points_mean':[concave_points_mean], | |
| 'symmetry_mean':[symmetry_mean], | |
| 'fractal_dimension_mean':[fractal_dimension_mean], | |
| 'radius_se':[radius_se], | |
| 'texture_se':[texture_se], | |
| 'perimeter_se':[perimeter_se], | |
| 'area_se':[area_se], | |
| 'smoothness_se':[smoothness_se], | |
| 'compactness_se':[compactness_se], | |
| 'concavity_se':[concavity_se], | |
| 'concave_points_se':[concave_points_se], | |
| 'symmetry_se':[symmetry_se], | |
| 'fractal_dimension_se':[fractal_dimension_se], | |
| 'fractal_dimension_se':[fractal_dimension_se], | |
| 'radius_worst':[radius_worst], | |
| 'texture_worst':[texture_worst], | |
| 'perimeter_worst':[perimeter_worst], | |
| 'area_worst':[area_worst], | |
| 'smoothness_worst':[smoothness_worst], | |
| 'compactness_worst':[compactness_worst], | |
| 'concavity_worst':[concavity_worst], | |
| 'concave_points_worst':[concave_points_worst], | |
| 'symmetry_worst':[symmetry_worst], | |
| 'fractal_dimension_worst':[fractal_dimension_worst] | |
| } | |
| features = pd.DataFrame(data) | |
| return features | |
| input_df = user_input_features() | |
| breast_raw = pd.read_csv('breast_cancer.csv') | |
| breast_raw.fillna(0, inplace=True) | |
| breast = breast_raw.drop(columns=['diagnosis']) | |
| df = pd.concat([input_df,breast],axis=0) | |
| df = df[:1] # Selects only the first row (the user input data) | |
| df.fillna(0, inplace=True) | |
| features = ['radius_mean', 'texture_mean', 'perimeter_mean', | |
| 'area_mean', 'smoothness_mean', 'compactness_mean', 'concavity_mean', | |
| 'concave points_mean', 'symmetry_mean', 'fractal_dimension_mean', | |
| 'radius_se', 'texture_se', 'perimeter_se', 'area_se', 'smoothness_se', | |
| 'compactness_se', 'concavity_se', 'concave points_se', 'symmetry_se', | |
| 'fractal_dimension_se', 'radius_worst', 'texture_worst', | |
| 'perimeter_worst', 'area_worst', 'smoothness_worst', | |
| 'compactness_worst', 'concavity_worst', 'concave points_worst', | |
| 'symmetry_worst', 'fractal_dimension_worst'] | |
| df = df[features] | |
| st.subheader('User Input features') | |
| st.write(df) | |
| load_clf = pickle.load(open('breast_clf.pkl', 'rb')) | |
| prediction = load_clf.predict(df) | |
| prediction_proba = load_clf.predict_proba(df) | |
| breast_labels = np.array(['Benign','Malignant']) | |
| st.subheader('Detection') | |
| if(prediction == 'B') : | |
| st.write(breast_labels[0]) | |
| else : | |
| st.write(breast_labels[1]) | |
| st.subheader('Detection Probability') | |
| df_proba = pd.DataFrame(data=prediction_proba, index=['Probability'], columns=breast_labels) | |
| st.write(df_proba) | |