먼저 jupyter notebook 에서 인공지능을 만들어준다.
만든 후 저장
저장한 인공지능을 joblib 라이브러리로 불러와서 사용
아래에선 2-1에서 불러옴
import streamlit as st
import joblib
import numpy as np
def run_ml():
st.subheader('자동차 가격 예측하기')
# 1. 예측하기 위해서 유저한테 입력을 받는다.
# ['Gender', 'Age', 'Annual Salary', 'Credit Card Debt', 'Net Worth']
st.text('성별을 선택하세요.')
gender = st.radio('성별 선택', ['남자', '여자'])
if gender == '남자':
gender = 1
else:
gender = 0
st.text('나이를 입력하세요.')
age = st.number_input('나이 입력', min_value=18, max_value=100, value=24)
st.text('연봉을 입력하세요.')
salary = st.number_input('연봉 입력', min_value=10000, value=50000, step=1000)
st.text('카드빚을 입력하세요.')
debt = st.number_input('카드빚 입력', min_value=0, step=1000)
st.text('자산을 입력하세요.')
worth = st.number_input('자산 입력', min_value=5000, value=20000, step=1000)
st.subheader('버튼을 누르면 예측합니다!')
if st.button('예측하기'):
# 2. 예측한다.
# 2-1. 모델이 있어야 한다.
regressor = joblib.load('./model/regressor.pkl')
print(regressor)
# 2-2. 유저가 입력한 데이터를 모델에 예측할 수 있도록 가공해야 한다.
# ['Gender', 'Age', 'Annual Salary', 'Credit Card Debt', 'Net Worth']
new_data = [gender, age, salary, debt, worth]
new_data = np.array(new_data).reshape(1, -1)
print(new_data)
# 2-3. 모델의 predict 함수로 예측한다.
y_pred = regressor.predict(new_data)
print(y_pred)
# 위의 데이터로 예측한 자동차 구매 가능 금액은 34116 달러 입니다.
y_pred = y_pred[0]
st.info(f'위의 데이터로 예측한 자동차 구매 가능 금액은 {int(y_pred):,} 달러 입니다.')
'Python > Streamlit' 카테고리의 다른 글
[Python] Streamlit plotly 차트 (1) | 2024.04.24 |
---|---|
[Python] Streamlit 차트 그리기 line_chart, area_chart, bar_chart, map (0) | 2024.04.24 |
[Python] Streamlit matplotlib, seaborn 차트 (1) | 2024.04.24 |
[Python] Streamlit 파일 분리 처리 (0) | 2024.04.24 |
[Python] Streamlit 파일 업로드 (0) | 2024.04.24 |