-
(Python) - 4 파이썬 교육개발/Python 2024. 8. 27. 17:43
■ wsl (윈도우에서 리눅스 환경 이용하기)
Linux용 Windows 하위 시스템
wsl --list --online : 기본 배포와 다른 유효한 배포 목록 보기
wsl --install -d Ubuntu : 우분투 설치하기
※ 톰캣도 Linux 환경에서 좀 더 잘 돌아간다.
■ 아이리스 sklearn 사용해보기
sklearn 에 있는 기본 iris 데이터 불러오기
데이터는 우리가 분석할 sepal nepal 데이터값이 들어가 있고,
target에는 분류값이 들어가 있다.
따라서 분석값은 X 로, 결과값은 y 로 저장해준다.
여기서 우리가 훈련시킬 데이터는 X_train 데이터 그에 해당하는 결과값은 y_train 데이터
우리가 테스트 후 예측을 잘 했는지 비교할 데이터는 X_test 데이터, 그에 해당하는 데이터는 y_test 데이터이다.
train_test_split 을 사용하면 해당 값을 랜덤하게 섞을 수 있다.
X 값이 앞에 있으므로 X_train, X_test 값을 넣어주고
y 값이 뒤에 있으니 y_train, y_test 값을 각각 넣어주게 된다.
test_size 는 얼마나 test 로 가져갈지를 이야기하고,
train_size 는 나머지가 돼서 굳이 적어주지 않아도 된다.
random_state 를 통해 고유의 시드 값을 부여해주고
shuffle=True 해준다. (기본값이라 생략해도 무방하다)
이제 객체를 만들어주고 fit() 을 통해 훈련시켜준다.
테스트 값을 통해 예측을 하고
예측값과 실제값이 얼마나 일치하는지 비교한다.
■ 의사결정나무
지도 학습(정답이 무엇인지 아는) 일종으로 분류와 예측을 하는 기법
※ 회귀와 분류
- 회귀 : 답이 숫자로 튀어나옴 ex) 집 값 분석
- 분류 : 답이 종류로 나옴 ex) 아이리스 분석 문제
독립변수 : x
반응변수 : y
반응변수가 수치형 = 회귀
반응변수가 범주형 = 분류
* 지니 지수
: 집합에 이질적인 것이 얼마나 섞였는지 측정하는 지표로 불순도를 측정한다.
=불확실성 감소 = 순도 증가 = 정보 획득
* 엔트로피 지수
■ 의사결정나무 학습 과정
* 재귀적 분기
- 구분하기 전보다 구분된 뒤에 각 영역의 순도가 증가하도록 입력 변수의 영역을 두 개로 구분한다.
* 가지치기
- 과적합(Overfitting)을 방지하기 위해 너무 자세하게 구분된 영역을 통합한다.
100% 데이터 맞는게 좋은 게 아니다.
■ RandomForest
■ 유방암 데이터 실습하기
데이터 불러오기
데이터 타입 확인용(없어도 됨)
랜덤포레스트가 더 잘 맞는다.
n_estimators 는 100개의 나무가 도는 것이다.
즉 100번을 돌고 많이 나온 것을 다수결로 값이 pred 이 나오는 것이다.
분류 / 회귀 / 군집 3가지로 구분된다 생각하면 편하다.
- 분류 : 지도 학습, 정답이 정해져 있는
ex) 사과/배 구분
- 군집 : 비지도 학습, 정답이 정해져 있지 않은 (누가 맞다 틀리다가 없다.)
몇 개의 군집으로 분류할 것인가
ex) 사과를 특상 상 상중 상하 와 같이 세분화 할 것인지 상중하 3가지 단계로 나눌 것인지
즉, 누가 틀린 게 아닌 문제가 군집이다.
■ KNeighborsClassifier
■ LogisticRegression
LogisticRegression 는 회귀를 써서 분류를 나타내는 것이다.
■ voting
4가지를 각각 정의해본다.
min_samples_split 데이터가 2개일 때 쪼갠다
min_samples_leaf 끝에 데이터가 최소 한 개 인정한다.
n_estimators 는 나무를 10개만 한다.
n_jobs 는 cpu 를 몇 개 쓸건지 정한다.
셀 분리 : ctrl + shift + -
■ accuracy_score
■ recall precision
데이터 불균형
■ 딥러닝
# 신경망(Neural Network)을 사용한 머신러닝 방법
# 쌓는 은닉층이 많아서(deep) DNN(Deep NN)이라 부른다.딥러닝은 선형함수
■ tensorflow
pip install tensorflow 로 설치
'개발 > Python' 카테고리의 다른 글
(Python) - 3 파이썬 교육 (0) 2024.08.26 (Python) - 2 파이썬 교육 (0) 2024.08.23 (Python) - 1 파이썬 교육 (0) 2024.08.22