QCQA_1기

TIL_6W2D_머신러닝 기초(2)

story3395 2025. 1. 21. 16:27
머신러닝의 이해와 라이브러리 활용 기초(2)
강의 내용 실습

머신러닝 기초.ipynb
0.34MB

 



선형회귀 (Tip 실습)

단순회귀 VS. 다중회귀

 

tips_data.csv
0.01MB

 

 

 

단순선형회귀 다중선형회귀(범주형 데이터 사용)
------------------------------------------ 범주형 데이터 처리(Sex_en 컬럼 생성)

#범주형 데이터 바꾸기
def get_sex(x):
    if x == 'Female':
        return 0
    else:
        return 1
 
#값을 컬럼에 넣어주기 위해서
tips_df['sex_en'] = tips_df['sex'].apply(get_sex)

MSE,r2_score 계산 (단순선형회귀)
: x변수(total_bill) 1개, y변수(tip)


#학습
x = tips_df[['total_bill']]
y = tips_df[['tip']]

model_lr2 = LinearRegression()
model_lr2.fit(x,y)

#예측
y_true_tip = tips_df['tip']
y_pred_tip = model_lr2.predict(tips_df[['total_bill']])

#평가(MSE)
print('단순선형회귀', mean_squared_error(y_true_tip,y_pred_tip))

출력: 단순선형회귀 1.036019442011377

#평가(r2_score)
print('단순선형회귀', r2_score(y_true_tip,y_pred_tip))

출력: 단순선형회귀 0.45661658635167657

MSE,r2_score 계산 (다중선형회귀)
: x변수(total_bill,sex_en) 2개, y변수(tip)

 
#학습
x = tips_df[['total_bill','sex_en']]
y = tips_df[['tip']]

model_lr3 = LinearRegression()
model_lr3
.fit(x,y)

#예측
y_true_tip = tips_df['tip']
y_pred_tip2 = model_lr3.predict(x)

#평가(MSE)
print('다중선형회귀', mean_squared_error(y_true_tip, y_pred_tip2))

출력: 다중선형회귀 1.0358604137213614

#평가(r2_score)
print('다중선형회귀', r2_score(y_true_tip, y_pred_tip2))

출력: 다중선형회귀 0.45669999534149974

 

 


로지스틱 회귀 (타이타닉 실습)

단순회귀 VS. 다중회귀

train.csv
0.06MB

 

 

 

 

로지스틱 회귀(단순회귀) 로지스틱 회귀(다중회귀/범주형 데이터 사용)
------------------------------------------
범주형 데이터 처리 (Sex_en 컬럼 생성)

#범주형 데이터 바꾸기
def
 get_sex(x):
    if x == 'female':
        return 0
    else:
        return 1
 
#값을 컬럼에 넣어주기 위해서
titanic_df['Sex_en'] = titanic_df['Sex'].apply(get_sex)
 
정확도, f1-score 계산
: x변수(Fare) 1개, y변수(Survived)

 
#학습
x_1 = titanic_df[['Fare']]
y_true = titanic_df[['Survived']]
 
model_lor = LogisticRegression()
model_lor.fit(x_1, y_true)
 
#함수설정
from sklearn.metrics import accuracy_score, f1_score
def get_metrics(true,pred):
    print('정확도', accuracy_score(true,pred))
    print('f1-score', f1_score(true,pred))
 
#예측
y_pred_1 = model_lor.predict(x_1)
 
#평가(정확도,f1_score)
get_metrics(y_true,y_pred_1)
 
출력:
정확도 0.6655443322109988
f1-score 0.354978354978355


정확도, f1-score 계산

: x변수(Pclassm, Sex_en, Fare) 3개, y변수(Survived)


#
학습
x_2 = titanic_df[['Pclass', 'Sex_en', 'Fare']]
y_true = titanic_df[['Survived']]
 
model_lor_2 = LogisticRegression()
model_lor_2.fit(x_2,y_true)
 
#함수설정
from sklearn.metrics import accuracy_score, f1_score
def get_metrics(true,pred):
    print('정확도',accuracy_score(true,pred))
    print('f1-score', f1_score(true,pred))
 
#예측
y_pred_2 = model_lor_2.predict(x_2)
 
#평가(정확도,f1_score)
get_metrics(y_true, y_pred_2)
 
출력:
정확도 0.7867564534231201
f1-score 0.7121212121212122



 


선형회귀 VS.로지스틱 회귀

 

머신러닝 기초 완강 ~!! 끝 이제 머신러닝 심화 열심히 들어보자!