본문 바로가기

전체 글307

아두이노 IoT 키트 목록 https://blog.naver.com/o_bley/223158327400 o_bley님의 블로그 : 네이버 블로그 자기소개가없습니다. blog.naver.com 이것을 참고해야지 2023. 7. 19.
아두이노 LCD와 시계 ** 컴파일을 먼저하고 업로드하는걸 추천함 ** -LiquidCrystal_l2C 라이브러리 설치 필요(zip을 이용해서 했음) >>LiquidCrystal 은 16개 핀 조정하는 라이브러리. 더보기 #include LiquidCrystal_I2C lcd(0x3F, 16, 2); //lcd 객체 선언 void setup() { lcd.begin(); //LCD 사용시작 } void loop() { lcd.setCursor(5,0); //커서를 5열 0행에 가져다놓기 lcd.print("Hi, ^^"); delay(1000); lcd.setCursor(3,1); lcd.print("Codingrun"); delay(1000); lcd.clear(); delay(1000); } 만약 LCD가 안나오면 주소값.. 2023. 7. 19.
머신러닝 같은 데이터로 scikit-learn 구현해보기 1. make_classification() 으로 데이터 X와 라벨 y를 생성하고 2. train_test_split()으로 학습데이터와 테스트 데이터를 나눈다. 3. LogisticRegression, LinearSVC, SVC, DecisionTreeClassifier, RandomForestClassifier를 import한 후 모델을 딕셔너리를 이용해 구축한다. 4. for문으로 모델을 학습시키고 정확도를 출력한다. ▷랜덤 포레스트랑 결정트리의 정확도가 가장 높다(1.0이니..ㅎ) ▷그래서 앞에서 했던 버섯데이터에도 해봤다. ▶ 여기서는 결정트리, 랜덤포레스트가 미세하게 높게 나왔고 비선현 SVM도 만만치 않게 높게 나왔다. 0.0002가 높으니까 크게 차이나지 않는게 아닐까..? 2023. 7. 19.
머신러닝 랜덤포레스트 / k-NN - 앙상블 학습의 일종 - 결정 트리의 단순 버전을 여러개 만들어 분류 결과를 다수결로 결정하는 방법 - 선형 분리가 불가능한 데이터셋의 분류가 가증한 점. - 다수의 분류기를 통해 다수결로 결과를 출력하기 때문에 빗나간 값에 의해 예측 결과가 좌우되기 힘든 점. ▼ 기본 예시 ▼ 어제했던 결정트리 예시에서 버섯 한번 더 활용하기 기본 데이터는 여기서 보기 ▶ https://dev-adela.tistory.com/169 ▷이전에 했던 결정트리랑 정확도가 똑같이 나온다..! 왜지 ▷ 버전이 올라가면서 개선된것이라고 함다 - 이웃해있는걸로 비교해서 가까운 것으로 판단한다는것. - 예측할 데이터와 유사한 데이터 몇 개를 찾아내 다수결로 분류 결과를 결정하는 방법. - 게으른 학습 (lazy learning)이.. 2023. 7. 19.
pandas와 시간 범위, 인덱스 - 데이터가 누락되어 있을때 ▶ date_range 메서드를 사용하면 시간 인덱스를 생성할 수 있음. ▶ ebola 데이터프레임의 앞쪽 5개의 데이터를 추출해서 새로운 데이터 프레임을 만듦. ▶ Date 열을 인덱스로 먼저 지정해야함 (아님 오류생김) (아닌데 되는데 인덱스가 0,1,2,3,4 로 새로 생길뿐) - Date열을 인덱스로 지정하고 x축을 Date로 y축을 사망자 수로 해서 그린 그래프임. ▶ 그런데 각 나라마다 발병일이 다르기때문에 그래프가 그려지기 시작한 지점도 다름. - 그래서 가장 처음 발병한 Guinea와 동일한 위치로 옮겨야 확산 속도를 제대로 비교할 수 있음. 그래서 옮기기 위해 ▷ Date열을 datetime으로 변환해서 ebola을 다시 불러옴. ▶근데 중간중간 NaN이 있는.. 2023. 7. 18.
시계열 데이터로 다양한 사례 다뤄보기 ebola 데이터를 보면 행과 열을 5개씩 불러보면 시간이 역순으로 정렬되어 있음. ▶ 에볼라가 발생하기 시작한 날을 알기 위해 min 메서드를 사용하여 찾을 수 있음 ▶ Date열에서 최초 발병일을 빼서 진행 정도를 새로운 열로 추가 할 수 있다. ▼ 이 데이터로 해볼거임. ▶ 보면 Closing Date와 Updated Date가 시계열 데이터로 보이지만 확인해보면 object, 문자열이다....속지말자 ㅎ ▶ 그래서 read_csv 메서드의 parse_dates 속성을 이용해 datetime 으로 변환해준다. https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html#pandas.read_csv ▶ dt접근자와 quarter속성을 사용해서 .. 2023. 7. 18.
아두이노 - 초음파 / 사운드 / 일산화탄소 센서 / 팬모터 더보기 #define TRIG 9 //TRIG 핀 설정(초음파 보내는 핀) #define ECHO 8 //ECHO 핀 설정(초음파 받는 핀) void setup(){ Serial.begin(9600); //시리얼 통신을 정의해줍니다. pinMode(TRIG, OUTPUT); pinMode(ECHO, INPUT); } void loop() { long duration, distance; digitalWrite(TRIG, LOW); delayMicroseconds(2); digitalWrite(TRIG, HIGH); delayMicroseconds(10); digitalWrite(TRIG, LOW); duration = pulseIn(ECHO, HIGH); //물체에 반사되어 돌아온 초음파 시간 저장 //3.. 2023. 7. 18.
결정트리, decision tree -decision tree - 데이터요소(독립변수) 각각을 주목 - 요소 내의 값을 경계로 데이터를 분할하여 데이터가 속하는 클래스를 결정하는 방법 - 결정 트리에서는 각 독립변수가 종속변수에 얼마나 영향을 미치는지 볼 수 있음. - 스무고개 하듯이 예, 아니오 질문을 이어가며 학습. ▼ 결정트리의 예 178에서 pd.get_dummies 는 자세한 내용은 여기 ▼ https://zephyrus1111.tistory.com/91 하고나니까 이렇게 True(1) False(0) 로 값이 나오더라고 ▼▼▼▼ ▼ 그리고 종속변수 flg 라고 새로운 열을 추가 (람다로 classes 가 p랑 같으면 1 안같으면 0으로 출력) 그리고 기존의 fig가 없는 데이터와 flg 열만 따로 변수 지정해줌 ▼ 그리고 우리가.. 2023. 7. 18.
기본 선형 SVM - 로지스틱 회귀처럼 데이터의 경계선을 찾아내 데이터를 분류하지만 가장 큰 특징은 서포트 벡터가 있다는 점. > 가장 가까이 있는 데이터와 경계선의 거리를 가리킴. 거리 합을 최대화함으로써 경계선을 결정하는 방법. 가장 먼곳에 분류할 경게선이 그려지기 때문에 로지스틱 회귀에 비해 일반화하기 쉬움. > 예측이 향상됨. ▲ 일반 선형 SVM은 이렇게 흘러간다. 그렇게 흘러가서 짠게 요고 ▼ 선형과 비선형의 모델의 정확도를 출력하면 이렇게 ▼ 비선형이 훨씬 훨씬 높다. 128행의 https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_gaussian_quantiles.html#sklearn.datasets.make_gaussian_qua.. 2023. 7. 18.