Recent Posts
Link
250x250
오늘보다 더 나은 내일의 나에게_
비전공자의 IoT 국비 교육 수강일지 Day_80 본문
728x90
머신러닝
다양한 평가지표
- precision(정밀도) : 모델이 해당 클래스로 예측한것에 대한 정확도
- recall(재현율) : 실제 해당 클래스에대해서 맞출 비율
- f1-score
- ROC
정밀도, 재현율, f1-score
sklearn.metrics import classification_report
print(classification_report(y_test,pre2))
머신러닝(Machine Learning) 종류
- 지도학습(Supervised Learning)
- 비지도학습(Unsupervised Learning)
- 강화학습(Reinforcement Learning)
지도학습
- 데이터에 대한 Label(명시적인 답)이 주어진 상태에서 컴퓨터를 학습시키는 방법
- 분류(Classification)와 회귀(Regression)로 나뉘어진다.
분류(Classification)
- 미리 정의된 여러 클래스 레이블 중 하나를 예측하는 것
- 속성 값을 입력, 클래스 값을 출력으로 하는 모델
- 붓꽃(iris)의 세 품종 중 하나로 분류, 암 분류 등.
- 이진분류, 다중 분류 등이 있다.
회귀(Resgression)
- 연속적인 숫자를 예측하는 것
- 속성 값을 입력, 연속적인 실수 값을 출력으로 하는 모델
- 어떤 사람의 교육수준, 나이, 주거지를 바탕으로 연간 소득 예측
- 예측 값의 미묘한 차이가 크게 중요하지 않다.
비지도 학습(Unsupervised Learning)
- 데이터에 대한 Label(명시적인 답)이 없는 상태에서 컴퓨터를 학습시키는 방법
- 데이터의 숨겨진 특징, 구조, 패턴을 파악하는데 사용
- 데이터를 비슷한 특성끼리 묶는 클러스트링(Clustering)과 차원축소(Dimensionality Reduction)등이 있다.
강화 학습(Reinforcement Learning)
- 지도학습과 비슷하지만 완전한 답을 제공하지 않는 특징
- 기계는 더 많은 보상을 얻을 수 있는 방향으로 행동을 학습
- 주로 게임이나 로봇을 학습시키는데 많이 사용
머신러닝이 유용한 분야
- 기존 솔루션으로 많은 수동 조정과 규칙이 필요한 문제
- 전통적인 방식으로는 전혀 해결 방법이 없는 복잡한 문제
- 새로운 데이터에 적응해야하는 유동적인 환경
- 대량의 데이터에서 통찰을 얻어야 하는 문제
주택가격 데이터 예측하기
1. 모델 정의
# 회귀모델 from sklearn.linear_model import LinearRegression house_model = LinearRegression()
Linear Model(선형 모델)
- 입력 특성에 대한 선형 함수를 만들어 예측을 수행
- 다양한 선형 모델이 존재
- 분류와 회구에 모두 사용 가능
2. 모델학습
1. 데이터 로딩
# data폴더로 이동하고 melb_data.csv 파일을 pandas로 열어 상위 5개를 살펴보자. import pandas as pd # 작업 경로 변경 %cd ./drive/MyDrive/Colab\ Notebooks/22.04.11\ 머신러닝(교육실D) # melb_data.csv 불러오기 house_data = pd.read_csv('./data/melb_data.csv') house_data.head()
데이터프레임 요약해서 출력
house_data.info() # 데이터 갯수, 결측치 유무, 컬럼이름, 데이터 타입
결측치가 없고, 숫자로 구성된 데이터중에 일부를 선택해서 사용X = house_data[['Rooms','Distance','Bathroom','Landsize','Lattitude','Longtitude']] y = house_data['Price'] X.shape, y.shape # => ((13580, 6), (13580,))
훈련용과 평가용으로 데이터를 분리해보자. 비율은 8:2, random_state=412from 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=412) X_train.head() X_train.shape, y_train.shape # => ((10864, 6), (10864,)) X_test.shape,y_test.shape # => ((2716, 6), (2716,))
지도학습
house_model.fit(X_train,y_train) # 지도학습 # 선형모델이 입력특성에 대해서 학습한 가중치 house_model.coef_ #array([ 3.19904084e+05, -4.24902739e+04, 1.86938191e+05, 4.04283314e+00, # -1.63108473e+06, 8.87040171e+05])
선형모델이 입력특성에 대해서 학습한 가중치#가중치 house_model.coef_ #array([ 3.19904084e+05, -4.24902739e+04, 1.86938191e+05, 4.04283314e+00, # -1.63108473e+06, 8.87040171e+05]) #절편 house_model.intercept_ #-190009122.20245534
3. 모델예측
pre = house_data.predict(X_test)
4. 모델평가
- 집 가격은 데이터의 형태가 수치형이기 때문에 정답인지 아닌지 명확하지않다.(개인 기준에따라서 달라질 수 있음)
- 수치형 데이터는 예측값과 실제값의 차이인 오차를 이용해서 모델을 평가
평균 절대값 오차
from sklearn.metrics import mean_absolute_error house_mae = mean_absolute_error(y_test,pre) # 실제값, 예측값 house_mae #=> 321470.49957908835
안드로이드
ConstraintLayout
배치 결과
마법봉(Inter Constraints)
상단 여백 준 후 모습
여백 조정 가능
요소 위치 조정 가능
=> 막대 이동 후 더블클릭시 처음상태로 돌아감
실습
실습
마우스 오른쪽 클릭 -> Chains -> Create Horizontal Chain
spread inside 설정
Horizontal Chain 설정 후 packed 설정
chain weighted 설정
Vertical Chain 설정
가이드라인
버튼 배경색
버튼 모서리 둥글게
버튼 내부 영역 지정
실습
상단 바 없애기
values폴더 -> themes -> themes.xml
=> windowNoTitle _ true 설정
상단 상태표시줄 색상변경 => colorPrimaryVariant 색 변경
728x90
'비전공자의 코딩일지' 카테고리의 다른 글
비전공자의 IoT 국비 교육 수강일지 Day_82 (0) | 2022.04.14 |
---|---|
비전공자의 IoT 국비 교육 수강일지 Day_81 (0) | 2022.04.13 |
비전공자의 IoT 국비 교육 수강일지 Day_79 (0) | 2022.04.11 |
비전공자의 IoT 국비 교육 수강일지 Day_77 (0) | 2022.04.07 |
비전공자의 IoT 국비 교육 수강일지 Day_76 (0) | 2022.04.06 |
Comments