군침이 싹 도는 코딩

Data Dashboard App 개발 순서 (1) 데이터 분석 본문

Python/Streamlit

Data Dashboard App 개발 순서 (1) 데이터 분석

mugoori 2022. 12. 13. 18:04

웹 대시보드를 만들기 위한 첫 순서인 데이터 분석을 해야한다.

데이터 분석을 하기위해 가장 유용한 툴인 주피터 노트북으로 한다

본문에서는 입력받은 데이터를 통해 자동차 구매가격 예측을 해주는 앱을

만들어 볼 것이다.

 

 

# 위 데이터 프레임으로 분석을 해보겠다

 

 

df.describe()

# 기본적인 분석을 해보자 

 

df.loc[df['Annual Salary'] == df['Annual Salary'].max(),]
df.loc[df['Annual Salary'] == df['Annual Salary'].min(),]

# 컬럼 별 최대 최소값도 찾아본다

 

 

 

plt.hist(data=df , x= 'Annual Salary',rwidth=0.8,bins=20)
plt.show()

# 컬럼 별 히스토그램도 그려본다

 

 

df[['Gender','Annual Salary','Age']].corr()

sb.heatmap(data=df.corr(),annot=True, fmt='.2f',cmap='coolwarm',vmin=-1,vmax=1,linewidths=0.5)
plt.show()

# 상관 계수도 구해보고 그것을 히트맵으로 출력도 해본다

 

 

 

그 후 필요에 따라 인공지능을 학습 시킨다.

본문에서는 자동차 구매금액 예측을 할 것이기 때문에

리니어 리그레이션 인공지능을 사용할것이다.

df.isna().sum()

# X,y 로 분리
y= df['Car Purchase Amount']
X=df.loc[:,'Gender':'Net Worth']
X = X.values

# na 가 있는지 확인하고 X,y로 분리해준다

 

 

 

# Train / Test 로 나누기
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=50)

# 인공지능 모델링 및 학습
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train,y_train)
y_pred = regressor.predict(X_test)

# 인공지능을 학습 시킬 트레인 테스트셋으로 나누고

인공지능을 모델링 한 다음 학습 시켜준다

이때 값을 예측하는것을 하기때문에 리니어리그레이션을 사용한다

 

 

 

# MSE (검증하기)
error = y_test - y_pred
(error ** 2).mean()
>>> 1.916197949954419

# 이 후 인공지능을 검증한다

값이 만족스럽게 나왔다

 

 

 

import joblib
joblib.dump(regressor,'regressor.pkl')

# 이제 인공지능을 저장해준다

이것으로 데이터 분석과 인공지능을 학습시켜 저장했으니 다음 순서로는

비주얼 스튜디오 코드로 웹 대시보드를 만든다