[Foundations of Data Science] 유산소 운동 피트니스 분석 (기술통계 분석 EDA)

2022. 11. 6. 22:33노트/Data Science : 데이터과학

유산소 운동 피트니스 케이스 스터디 - 기술 통계(Descriptive Statistics)

 

AdRight의 시장 리서치 팀에게 유산소 운동 피트니스에서 제공된 각 런닝머신 기구에 대한 일반적인 고객들의 프로파일을 확인하라는 업무가 할당되었습니다. 시장 리서치 팀은 고객 특성과 관련하여 제품군에 걸쳐 차이가 있는지 조사하기로 결정했습니다. 팀에서는 과거 3개월 동안 유산소 운동 피트니스 소매점의 런닝머신 기구를 구매한 개인들에대한 데이터를 수집하였습니다. 이 데이터는 CardioGoodFitness.csv 파일입니다.

 

팀은 다음 고객 변수를 연구하기로 했습니다.

  • 구매된 상품, TM195, TM498, or TM798
  • 성별
  • 나이
  • 교육 수준
  • 관계 상태, 싱글 또는 파트너가 있는지,
  • 연간 가구 소득
  • 고객이 매주 런닝머신을 사용하기로 계획한 평균 횟수
  • 고객이 매주 걷거나 달리기를 기대하는 miles 수
  • 그리고, 1-5 스케일로, 자체 평가한 피트니스 상태, 1은 나쁜 상태고 5는 가장 좋은 상태

 

데이터셋 : https://www.kaggle.com/datasets/saurav9786/cardiogoodfitness

 

CardioGoodFitness

Cardio Good Fitness Case Study

www.kaggle.com

각 유산소 운동 런닝머신 상품 라인들에 대한 고객 프로필을 생성하기 위한 기술 분석을 수행하시오

# Load the necessary packages 
import numpy as np 
import pandas as pd
# Load the Cardio Dataset 
mydata = pd.read_csv('CardioGoodFitness.csv')
mydata.head()

mydata.describe(include = 'all')

mydata.info()

import matplotlib.pyplot as plt 
%matplotlib inline

mydata.hist(figsize = (20,30))

# importing seaborn library 
import seaborn as sns 

sns.boxplot(x = 'Gender', y = 'Age' , data = mydata)

sns.boxplot(x = 'Product', y = 'Age', data = mydata)

pd.crosstab(mydata['Product'], mydata['Gender'])

pd.crosstab(mydata['Product'], mydata['MaritalStatus'])

sns.countplot(x = "Product", hue = 'Gender', data = mydata)

pd.pivot_table(mydata, index = ['Product', 'Gender']
                    , columns = ['MaritalStatus'], aggfunc = len)

pd.pivot_table(mydata, 'Income' , index = ['Product', 'Gender']
                                , columns = ['MaritalStatus'])

pd.pivot_table(mydata, 'Miles' , index = ['Product', 'Gender']
                                , columns = ['MaritalStatus'])

sns.pairplot(mydata)

mydata['Age'].std()
>>> 6.943498135399795
mydata['Age'].mean()
>>> 28.788888888888888
sns.displot(data = mydata, x = 'Age', kde = True)

mydata.hist(by = 'Gender', column = 'Age')

mydata.hist(by = 'Gender', column = 'Income')

mydata.hist(by = 'Gender', column = 'Miles')

mydata.hist(by = 'Product', column = 'Miles', figsize = (20,30))

corr = mydata.corr() 
corr

sns.heatmap(corr, annot = True)

# Simple Linear Regression 

# Load function from sklearn 
from sklearn import linear_model

# Create linear regression object 
regr = linear_model.LinearRegression() 

y = mydata['Miles']
x = mydata[['Usage', 'Fitness']]

# Train the model using the training sets 
regr.fit(x,y)
>>> LinearRegression()
regr.coef_
>>> array([20.21486334, 27.20649954])

regr.intercept_
>>> -56.74288178464856

# MilesPredicted = -56.74 + 20.21 * Usage + 27.20 * Fitness