교육/2021 NIPA AI 온라인교육

[응용교육과정]머신러닝 시작하기

zzangyeah 2021. 8. 31. 23:49
728x90

01. 자료 형태의 이해

#도수계산
df['a'].value_counts()
#a열의 도수 출력

#평균계산
np.mean(array)

#표준편차
stdev(array)

#히스토그램
plt.hist(array)
#bins라는 옵션을 줘서 계급의 개수 설정가능

02. 데이터 전 처리하기

#명목형 자료 수치형으로 매핑해서 변환
DataFrame.replace({A:B, C:D,...})
#예시
titanic.replace({'male':0,'female':1})

#명목형 자료 더미 형식으로 변환
pd.get_dummies(DataFrame[[변수명]])

#특정변수(columns)삭제
DataFrame.drop(columns=[변수명])
#결측값 샘플 제거
DataFrame.dropna()

#train, test 데이터 분리
X_train, X_test, y_train, y_test = 
train_test_split(feature 데이터, label 데이터, test_size= 0~1 값, random_state=랜덤시드값)

03. 지도학습 - 회귀

#단순선형회귀
#1.데이터 전 처리
#scikit-learn 을 사용하면 Loss 함수를 최솟값으로 만드는 β0, β1을 쉽게 구할 수 있음
#X,y샘플 개수같아야함

#2.학습하기
#모델 객체를 불러와 초기화
lrmodel = LinearRegression()
#학습
lrmodel.fit(train_X, train_Y)
#β0,β1값 구하기
beta_0 = lrmodel.intercept_
beta_1 = lrmodel.coef_[0]

#3.예측하기
#예측
pred_X = lrmodel.predict(X)
#다중회귀분석
#1.데이터 전처리 
#X:feature데이터 Y:label데이터

#2.학습하기
#Sales=β0+β1X1+β2X2+β3+X3
#파라미터 구하기
lrmodel = LinearRegression()
lrmodel.intercept_	#β0
lrmodel.coef_[i]	#i+1번째 변수에 곱해지는 파라미터값

#3.예측하기
pred_X = lrmodel.predict(X)

#회귀 알고리즘 평가 지표 - MSE, MAE
mean_squared_error(y_true, y_pred)	#MSE 값 계산하기
mean_absolute_error(y_true, y_pred)	#MAE 값 계산하기

#회귀 알고리즘 평가 지표 - R2
r2_score(y_true, y_pred)	#R2 score 값 계산하기

04. 지도학습 - 분류

#간단한 의사결정나무 만들기
#1.학습하기
#모델객체초기화
DTmodel = DecisionTreeClassifier()
#학습하기
DTmodel.fit(train_X, train_Y)

#2.예측하기
pred_X = DTmodel.predict(test_X)
#혼동행렬(confusion matrix)
confusion_matrix(y_true, y_pred)

#정확도(Accuracy) 계산하기
DTmodel.score(train_X, train_Y)

#정밀도(Precision) 계산하기 
precision_score(train_Y, y_pred_train)

#재현율(Recall) 계산하기
recall_score(train_Y, y_pred_train)