2022년 5월 13일 금요일

오렌지로 로지스틱알고리즘을 이용한 당뇨병 분류 1 (훈련, 시험)

 머신러닝 학습용 프로그램인 오렌지를 이용하여 실무에 어느정도까지 접근 할 수 있나를 보여주기 위하여 파이썬으로 하는 분석을 오렌지로 해봅니다.

파이썬으로하는 자료는 파이썬 원본에서 확인 할 수 있습니다. 이것은 기계 학습을 사용하여 혈압, 체질량 지수(BMI), 나이 등과 같은 환자에 대한 정보를 기반으로 당뇨병이 있는지 여부를 예측할 것으로 현재 제가 알고 있는 오렌지의 기능을 최대한 이용하여 분석하는 것으로 다른 위젯을 이용하여 더 알기쉽게 접근 할 수도 있을 것입니다.

1. 우선 데이처를 가져와야 겠지요. 케글에서 다운로드 받습니다. 적당한 곳에 저장하고 File Widget으로 불러옵니다.


2. Data Description 는 Data Table Widget을 연결하여 확인합니다. 이 부분은 파이썬코딩방식보다 직관적입니다.

Pregnancies: 임신횟수
Glucose: 경구내당 검사에서 2시간 동안의 혈장 포도당 농도
BloodPressure: 이완기 혈압 (mm Hg)
SkinThickness: 삼두근 피부 주름 두께 (mm)
Insulin: 2시간 혈청 인슐린 (mu U/ml)
BMI: 체질량 지수 (weight in kg/(height in m)2)
DiabetesPedigreeFunction: 당뇨병 가계도 기능(가족력을 기반으로 당뇨병 가능성을 점수화하는 기능)
Age: 나이 (years)
Outcome: Class variable (당뇨병이 없으면 0, 당뇨병이 있으면 1)

 Target 변수가 Outcome 이네요. 파일 위젯으로 가서 수정하거나, 

Select Columns widget에서 Fratures있는 Outcome를 (1) Ignores > (2) Target로 옮깁니다.

 3. Feature Statistics Widget을 이용하여 데이터를 살펴봅니다.

데이터에는 일부 누락된 값(인슐린 = 0 참조)이 있습니다. 이상적으로는 이 0 값을 해당 기능의 평균 값으로 바꿀 수 있지만 지금은 건너뛰겠습니다.

4. Heat Map Widget을 이용하여 상관관계를 인사잇합니다.
더 밝은 색상은 더 많은 상관 관계를 나타냅니다.

5. 2개의 변수간의 관계는 Sieve Diagram Widget을 이용합니다.

나이가 많은 사람이 적은 사람보다 기대값(9%)보다 관측값(14%)이 많음을 알 수 있으며 p-Value가 0.0이하임으로 차이가 있다고 볼 수 있습니다. 

6. 데이터 세트 준비(분할 및 정규화)
  기계 학습 알고리즘을 사용할 때 우리는 항상 데이터를 훈련 세트와 테스트 세트로 분할해야 합니다. 모델을 훈련시키기 위해 750개의 레코드를 사용하여 교차검증을 할 것입니다. 테스트를 위해 18개의 레코드를 사용할 것입니다. [파이썬으로는 학습+시험+체크 : 3단계, 오렌지는 (학습=교차=750)+ (시험=18) : 2단계]
6.1 Preprocess

6.2 Data Sampler

7. 로지스틱 회귀라는 학습 모델을 사용할 것입니다. 오렌지의 캔바스를 아래와 같이 구성합니다.

8. Test and Score Widget을 열어 교차검증방식으로 750개의 데이터를 학습하여 AUC = 0.822을 확인하고, 

계속하여 Test 데이터(18개)를 적용하여 AUC = 0.833을 확인 할 수 있습니니다. 일부 데이터가 "0" 임을 묵과 하였음.

9. 그리고 Data Table에서 18개의 결과를 확인 할 수 있습니다. 헤더를 드래그&드롭하여 재배치 할 수 있습니다.

10. Sieve Diagram에서 Glucose 와 BloodPressure 의 상관관계를 살펴보면


Outcome = 1일대 Glucose가 촘촘해지면서 색상이 진해진다.  관측치가 기대치보다 많다. 이부분은 충분히 이해가 가는데, BloodPresure는 커져도 Outcome=1일 때 촘촘 함이 덜하다. 상관관계가 덜하다고 판단되는데,  파이썬 분석에서는 (-)인 것으로 해석(이 부분은 저의 공부가 부족하여 저도 잘 이해를 못하겠습니다.)











댓글 없음:

tensorflow gpu 사용하기에서

 tensorflow 설치시 주의해야 한다. # Anything above 2.10 is not supported on the GPU on Windows Native python - m pip install "tensorflow<2.11...