웹대시보드 개발

웹대시보드 개발(11) 주피터노트북에서 학습한 인공지능을 스트림릿에서 사용하는 방법

개발연습자1 2022. 12. 14. 16:03

이제 스트림릿에서 파이썬환경에서 개발한 인공지능을 스트림릿에 올리는 작업을 해보겠다.

 

기존에 파이썬에서 인공지능을 작업하는 방법은 생략하겠다 대신 인공지능편에 있는 내용을 참고 바란다.

 

주피터 노트북등에서 작업한 인공지능을 내보내려면 다음과 같은 함수로 내보낸다.

 

#내보내기 함수 호출
import joblib

#인공지능 변수가 regressor인 코드를 pkl파일로 내보내기
joblib.dump(regressor,'regressor.pkl')

이렇게 내보낸 데이터는 자신의 환경이 있는 폴더 안에 pkl파일로 보관된다.

github에 올릴꺼니 왠만하면 github 폴더에 저장하는것이 좋다.

 

이제 이 파일을 github desktop을 통해 github 사이트로 내보내자

 

 

그럼 github desktop에서 github로 내보낸 파일을 visual studio code통해 실행하자

 

 

 

열린 visual studio code에서 app.py를 새로 만들고 그안에 코드를 입력한다.

 

 

메인화면과 인공지능 화면으로 구상하여 작업하자

 

메인화면 코드

import streamlit as st
from app_home import run_home_app
from app_eda import run_eda_app
from app_ml import run_ml_app
def main():
    
    st.title('자동차 가격 예측 앱')

    menu = ['Home','EDA','ML']
    choice = st.sidebar.selectbox('메뉴',menu)

    if choice == 'Home':
        run_home_app()
        
    elif choice == 'ML':
        run_ml_app ()

if __name__ == '__main__':
    main()

 

home함수 코드

import streamlit as st

def run_home_app():
    st.text('이 앱은 고객데이터와 자동차 구매 데이터에 대한 내용입니다. 데이터 분석 및 고객 정보를 넣으면,\얼마정도의 구매금액을 예측해 줍니다.')

    st.image('https://m.young.hyundai.com:444/upload/CMS_NEWS_IMAGE/2016/03/23/CMS_NEWS_IMAGE_PIWCZj9NqnJSzHPc4AUs.png')

 

인공지능(ml)코드

# 자동차 금액을 예측하세요.


    
    gender=st.radio('성별 선택',['여자','남자'])
    if gender == '여자':
        gender =0
    else:
        gender=1

    age=st.number_input("나이를 입력하세요",20,100)
    salary=st.number_input("연봉을 입력하세요",20000,100000)
    debt=st.number_input("카드 빚을 입력하세요",100,20000)
    worth=st.number_input("자산을 입력하세요",9000,80000)

    new_data=np.array([gender,age,salary,debt,worth])
    
    new_data=new_data.reshape(1,5)
    
    regressor = joblib.load('regressor.pkl')

    y_pred2=regressor.predict(new_data)

    y_pred2=round(y_pred2[0],1)
    
    if y_pred2>1000:
        st.info('예측한 자동차금액은{}달러입니다.'.format(y_pred2))

    else:
        st.info('입력한 데이터로는 금액을 예측하기 어렵습니다.')

 

인공지능을 쓸때 아까 저장해두었던 regressor.pkl 파일이 작동되면서 인공지능이 streamlit 화면에서 실행되게 된다.

 

home화면

 

ml화면(인공지능)

 

 

예측할 데이터를 넣으면 regressor.pkl이 작동되면서 실행되게 된다.

 

반응형