1. 오즈비
사건이 발생할 확률이 발생하지 않을 확률에 비해 몇배 더 높은가를 설명하는 개념
이미지 출처 : https://m.blog.naver.com/y4769/221851780608따라서, 코로나 환자와 접촉한 사람은 접촉하지 않은 사람보다 코로나 감염이 될 가능성이 2.2배 높다고 할 수 있다.
3. 로짓(logit) 변환: 오즈비에 log 함수 적용한 것으로 로짓을 대상으로 회귀분석을 적용한 것이 로지스틱 회귀분석이 된다.
1. 오즈비
사건이 발생할 확률이 발생하지 않을 확률에 비해 몇배 더 높은가를 설명하는 개념
이미지 출처 : https://m.blog.naver.com/y4769/221851780608따라서, 코로나 환자와 접촉한 사람은 접촉하지 않은 사람보다 코로나 감염이 될 가능성이 2.2배 높다고 할 수 있다.
3. 로짓(logit) 변환: 오즈비에 log 함수 적용한 것으로 로짓을 대상으로 회귀분석을 적용한 것이 로지스틱 회귀분석이 된다.
Sqlite 데이터베이스는 데이터베이스 서버가 없는 파일형태의 데이터베이스입니다. 하나의 데이터베이스에는 여러개의 테이블이 있고 각각의 테이블은 레코드로 구성되어 있습니다.
오렌지3에서 Sqlite데이터베이스에 자료를 입력하는 경우는 별로 없을 것이고, 누군가(시스템, 기계, 여론조사 디비등등)가 만들어 놓은 자료를 접근하여 읽어오기만 하면될것입니다. (나중에 기회되면 쓰는 것도 다루어 보죠)
1. 먼저 Sqlite 데이터 베이스를 (이곳에서 다운로드) 에서 다운받아 컴퓨터의 적당한 곳에 저장해 둡니다.
2. 파이썬스크립트위젯과 데이터테이블위젯을 아래와 같이 오렌지 캔바스에 배치합니다.
파이썬을 활용한 데이터·AI 분석 사례 (건강보험심사평가원 발행) 페이퍼를 보면서 오렌지3를 익히고 있습니다.
오렌지3 만으로도 이러한 분석이 가능한 걸 알면 의료분야 많은 교수님들이 좋아 할 것 같습니다. 저는 의료분야는 문외한이라 페이퍼에 나온 것을 오렌지로 구현해본 것 뿐입니다.
1. 주성분분석(Principal Component Analysis)
여러 특성(feature)가운데 대표 특성을 찾아 분석하는 방식으로, 대표 특성의 선별은 자료의 차원을 고차원에서 하위 차원으로 축소하는 (차원축소)기법을 활용한다.
2. 분석연습
위스콘신 암센터 569명의 유방암 진료 환자 샘플 데이터를 PCA에 활용하였다. 암 진단에 필요한 속성 정보와 양성(Benign)/악성(malignant) 진단 결과로 분류된 환자 데이터이다. 해당 데이터 세트를 검토하여 유방암 진단에 설명력이 높은 주성분들을 찾아본다.
3. 일단 오렌지를 실행하고 > 위젯을 아래와 같이 배치합니다.
4. 파이썬스크립트를 더블크릭하고 내용을 아래와 같이 수정하고 [RUN] 버튼을 눌러 실행합니다.
domain 관련하여 약간의 코딩이 들어 갔습니다. 에디트도메인위젯을 이용하면 쉽게할 수 있습니다.
5. 오렌지를 설치하면 자동으로 깔리는 sklearn에 있는 자료를 불러와 오렌지3의 테이블 형식으로 변경하는 것입니다.
6. 이제는 오렌지3의 위젯을 더블크릭하여 확인하는 일만 남았습니다. 이런것을 이짧은 코딩으로 가능하다니 놀랍지 않나요? 불어온 자료를 눈으로 확인합니다.
6. Feature Statistics를 더블크릭하여 확인합니다. 양성/악성이 특정 Feature에의해 구분이 가능하군요.
9. PCA 위젯을 더블크릭하고 [Components = 6] 으로 설정합니다. 페이퍼와 일치 시키기위해서
10. Distribution (1)을 더블크릭하여 주성분의 적중여부를 확인합니다.
1. Orange3 Preprocess 위젯에서 Normalize Features 의 Standardize 와 Normalize 의 차이를 알고 계신가요. 용어가 참 햇갈리게 사용됩니다.
Before Normalization: [0.02729, 0.0, 7.07, 0, 0.4690, 7.185, 61.1, 4.9671, 2, 242, 17.8, 392.83, 4.03 | 34.7] After Normalization: [0.000235698, 0.000, 0.242302, 0, 0.172840, 0.694386, 0.59938, 0.348962, 0.0435, 0.10496, 0.5532, 0.9897373, 0.063466 | 34.7]
4. 같은 방법으로 오렌지의 파이썬스크립트를 이용해 처리 할 수 있습니다.
5. 당연히 같은 결과를 얻을 수 있습니다.
맥에서 오렌지3를 실행할때 가상환경으로 이동한후
$ orange-canvas
또는
$ orange-canvas &
하여 백그라운드로 실행하는데
(orange3) jglee@iMac Orange3 % orange-canvas
/Users/jglee/opt/miniconda3/envs/orange3/lib/python3.8/site-packages/statsmodels/tsa/base/tsa_model.py:7: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.
from pandas import (to_datetime, Int64Index, DatetimeIndex, Period,
/Users/jglee/opt/miniconda3/envs/orange3/lib/python3.8/site-packages/statsmodels/tsa/base/tsa_model.py:7: FutureWarning: pandas.Float64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.
from pandas import (to_datetime, Int64Index, DatetimeIndex, Period,
(orange3) jglee@iMac Orange3 % code /Users/jglee/opt/miniconda3/envs/orange3/lib/python3.8/site-packages/statsmodels/tsa/base/tsa_model.py
과 같은 경고 메시지가 나옵니다.
nano, vim, VSCode 등 에디터로 tsa_model.py 를 불러들여 Int64Index 와 Float64Index를 Index로 바꾸어 주면 됩니다.
바꾸어주고 실행하면 깔끔합니다.
화면이 지저분해서지 실행하는데는 전혀 지장이 없습니다.
카제곱 검정의 독립성 검정은 이곳에서 살펴 보았는데 적합성 검정은 오렌지에서는 찾기 힘들어 파이썬스크립트를 사용해야만 할 것 같음. 아래 예제는 유의수준 5%임.
1. 귀무가설: H0 : 6가지의 상황에서 기대값이 같을 것이다.
대립가설(연구가설): H1 : 어느 하나는 다르다.
Power_divergenceResult(statistic=2.0, pvalue=0.8491450360846096)
귀무가설을 기각 할 수 없다. 어느 하나의 상황도 다른 것들과 다르다고 볼 수 없다.
2. 귀무가설: H0 : 6가지의 상황에서 기대값이 같을 것이이다.
대립가설(연구가설): H1 : 기대 값과 다른 어느하나가 있다.
Power_divergenceResult(statistic=3.5, pvalue=0.6233876277495822)
귀무가설을 기각 할 수 없다. 어느 하나의 상황도 기대값에 벗어 났다고 볼 수 없다.
3.
Power_divergenceResult(statistic=17.329649595687332, pvalue=0.00017254977751013492)
귀무가설을 기각한다. 3개의 상황중 적어도 하나는 기대값에 벗어 났다.
4. 학습할 경우 주의할 사항은 관측값의 합계와 기대값의 합계는 같아야 합니다. (당연한데 햇갈립니다)
5. 독립성검정은 아래와 같은 방법도 가능합니다.
(7.094264414804222, 0.028807134195296135, 2, array([[250.425 , 82.6875, 233.8875], [173.575 , 57.3125, 162.1125]]))
귀무가설을 기각한다. 1의 환경(남자)과 1의 환경(여자)의 상품 1 ,2, 3의 소비형태가 차이가 있다.
연관분석
저 같은 경우는 miniconda로 가상환경을 설치하였기에 아래와 같이 하여 VSCode를 시작하였습니다. (% brew install --cask visual-studio-code 으로 설치)
6. (5)번의 아랫부분에 아래 코드를 추가하고 관련 모듈을 추가하면 코딩이 끝납니다. 이러한 방식으로 하면 코드 자동완성기능이 되어서 코딩이 쉬워집니다.
self.te 하면 self.testButton이하를 아주 쉽게 자동완성 할 수 있습니다.
전체코드 중복부분 생략함
맥에서입니다. Qt Designer 경량버전 설치
앞에서 Qt Designer경량버전을 설치하였습니다. 런처패드로가서 실행합니다.
1. Main Window 로 지정하고 > Create 버튼을 선택합니다.파이 썬으로 PyQt5를 이용하여 윈도우를 만들어 화면에 띄울때 아래와 같이 일일이 코딩을 해야 합니다.
델파이 프로그램을 사용하여 개인적으로 필요한 프로그램을 생성해 왔는데, 얼마전부터 파이썬으로 옮겨갔다. 그런데 Google 의 Antigravity를 만나고 나서 델파이에 대한 미련을 버리지 못해 제미나이가 Delphi이에 대한 학습도 엄청 했을...