반응형

프로그래밍/Python 37

[혼공머신러닝] 6장 k평균 알고리즘 정리

안녕하세요 Dibrary입니다. 이번에는 혼자공부하는 머신러닝의 6장 내용인 'k평균 알고리즘'에 대해 정리해보겠습니다. k평균 알고리즘은 아래와 같이 동작합니다. 무작위로 k개 클러스터의 중심을 정합니다. 각 샘플에서 가장 가까운 클러스터의 중심을 정합니다. 그게 곧 해당 클러스터의 샘플이 됩니다. 클러스터에 속함 샘플의 평균값으로 클러스터의 중심을 변경합니다. 클러스터 중심에 변화가 없을 때 까지 2번으로 돌아가서 반복합니다. 즉, 한 마디로 '인접 요소를 가장 잘 대변하는 점 하나를 찍고, 그게 맞으면 평균점이 되는데, 그게 아니라면 평균점이 될 때까지 이걸 반복한다' 는 것이죠. 파이썬은 굉장히 편리하다고 느끼는 게, 이 k평균 군집 역시 파이썬 sklearn 모듈을 사용해서 할 수 있습니다. 먼..

파이썬으로 구현해 확인하는 MODBUS통신 - Client 편

안녕하세요 Dibrary입니다. 파이썬으로 온갖걸 다 할 수 있다는건 많이들 알고 계실겁니다. 그 중에 Plant 산업 현장에 많이 쓰이는 Modbus도 파이썬으로 가능한거 알고 계세요? 만능이죠 만능. 간단하게 Modbus 통신을 이용해서 Client로 값을 쓰고 읽는 것을 해 보겠습니다. 저는 Jupyter를 사용해서 결과를 보여드릴거고, Device는 modSim이라는 시뮬레이터로 확인해 보았습니다. (물론, 실제 PLC, MCU보드, 인버터 등등을 제어하는 것도 했습니다.) 시뮬레이터는 아래에서 받으실 수 있습니다. Modbus simulator Download Modbus simulator for free. Modbus RTU and TCP/IP slave simulator. For Testin..

REST 테스트를 하기 위한 json-server 실행하기

안녕하세요 Dibrary입니다. RESTful API를 테스트 할 때, json 꼴로 반환해 주는 서버가 있으면 편리한데 대부분 아래 사이트를 많이 사용하곤 합니다. JSONPlaceholder - Free Fake REST API {JSON} Placeholder Free fake API for testing and prototyping. Powered by JSON Server + LowDB. Tested with XV. As of Oct 2021, serving ~1.7 billion requests each month. jsonplaceholder.typicode.com 이 사이트도 편리하지만, 데이터 넣고, 수정 작업을 하려면 직접 서버를 하나 돌리고 해당 서버를 이용해서 테스트 하는 것이 더 ..

[혼공머신러닝] 5장 트리 알고리즘 정리

안녕하세요 Dibrary입니다. 이번에는 트리 알고리즘을 정리해보겠습니다. 먼저 트리라는 자료구조는 하나의 루트로부터 시작해서 계속 가지를 쳐 나가는 것입니다. 이렇게 말이죠. 다만 2개씩만 하는 경우에 한해서 이진트리라고 특별히 이름 짓습니다. (이는 데이터를 빠르게 찾는데 굉장히 유용하기 때문에 알고리즘에서 주로 사용됩니다.) 이 트리형태로 해답을 찾아 나가는데, 각 트리의 노드가 해답을 찾아나가는 '질문'으로 된 것이 결정트리 입니다. 이런 것이죠. 질문이 꼭 하나로만 구성될 필요도 없습니다. 파이썬은 sklearn 모듈을 사용해서 결정트리를 사용할 수 있습니다. 먼저 임의의 데이터를 가져와보겠습니다. 이 데이터 중에 class를 target으로 잡고, 나머지 3가지 항목을 해당 target을 구하..

[혼공머신러닝] 4장 로지스틱회귀 정리

안녕하세요 Dibrary입니다. 이번에는 혼자 공부하는 머신러닝의 4장, 로지스틱 회귀에 대해 정리해보겠습니다. 로지스틱 회귀는 '회귀'라는 단어가 들어가긴 하지만 분류 모델입니다. 학습하는 선형 방정식이 회귀처럼 생겼을 뿐이죠. 이 분류가 될 확률을 구한다고 할 때, 확률은 0~1 사이의 값이죠. (1은 100%를 의미.) 근데, 확률이 0인 경우는 잘 안나와야겠죠? 확률이 높을 수록 분류가 잘 될 것이구요. 그러한 특성을 가진 그래프를 '시그모이드 함수'라고 합니다. 그려보면 위와 같습니다. 잘 안보이신다구요? grid를 추가해 보겠습니다. x축의 0값을 기준으로 왼쪽으로 가면 0으로 수렴하고, 오른쪽으로 갈 수록 1에 수렴합니다. 임의 데이터를 가지고 로지스틱 회귀를 해 보겠습니다. 이렇게 입력하면..

파이썬으로 XML파일 파싱해서 사용하기

안녕하세요 Dibrary입니다. 이번에는 파이썬으로 XML파일을 파싱해보겠습니다. XML파일은 JSON파일과 마찬가지로 설정하는 부분에서 굉장히 많이 쓰이고, 또 각종 산업 현장에서 태그들을 XML파일로 정의해서 쓰거나, 로그를 XML꼴로 저장하기도 합니다. 이럴 경우 airflow를 사용해서 해당 파일을 파싱하게 해서 정리하면 꽤 유용합니다. 파이썬은 Jupyter를 사용하고, XML파일은 임의로 아래와 같은 파일을 만들었습니다. (실제 플랜트 산업에서 쓰는 것과 같진 않지만, 유사하게 말이죠) 참고로 저는 파일 이름을 sample.xml 이라고 지었습니다. xml을 파싱하려면 lxml 모듈이 있어야 합니다. 늘 그렇듯, pip install lxml을 하시면 자동으로 설치가 됩니다. 먼저 root의 ..

[혼공머신러닝] 3장(최근접 이웃회귀, 선형회귀) 정리

안녕하세요 Dibrary입니다. 이번에는 혼자공부하는 머신러닝 책의 3 챕터, '회귀'에 대해 정리해보겠습니다. 회귀는 간단하게 클래스 중 하나로 분류하는 것이 아니라, 임의 숫자를 예측하는 것입니다. 두 변수 사이의 상관관계를 분석하는 방법이 회귀입니다. 1. k-최근접 이웃 회귀 예측하려는 샘플에 가까운 샘플 k개를 선택하는데, 샘플의 타겟은 '수치값'입니다. 간단히 예를 들자면, 이 수치값의 평균을 구하고 이를 예측 값으로 사용하는 것이 일종의 회귀 방법입니다. 2. 선형회귀 샘플 데이터들의 특성을 가장 잘 나타내는 직선을 구하고, 해당 선을 기준으로 예측값을 구하는 방법입니다. 과대적합 = 모델이 훈련에 너무 익숙해져 있는 상황입니다. 따라서, 실제 데이터가 주어지더라도 훈련과 다르면 틀리다고 판..

파이썬으로 임의 데이터 생성, 데이터파일 만들기

안녕하세요 Dibrary입니다. 데이터 분석이나, 데이터 엔지니어링을 할 때 생각보다 많은 양의 데이터가 필요한데 구하기가 마땅치 않을 때가 많죠. 이럴 때 파이썬을 이용해서 임의 데이터 파일을 만들어서 '동작여부, 기능 상태 확인'등을 진행해볼 수는 있습니다. 데이터를 임의로 생성할 때 필요한 것은 faker 모듈입니다. tmp라는 Faker 객체를 만든 후에, name을 불러보니 제가 입력한 적도 없는 데이터가 마치 '이름'처럼 나왔죠? 그럼 이 Faker 객체로 어떤 것들을 만들 수 있는지는 dir(tmp) 를 해 보시면 알 수 있습니다. 아주 많은 것을 만들 수 있죠. 그럼, 이제 임의로 제가 csv 파일 꼴의 데이터를 생성해 보겠습니다. 날짜, 시간, 이름, 지역 이렇게 구성된 데이터를 한 번 ..

파이썬으로 JSON 파일에서 필요한 것만 뽑아내기

안녕하세요 Dibrary입니다. 이번엔 JSON파일을 파이썬으로 파싱해보겠습니다. JSON은 ElasticSearch를 사용하면 정말정말 자주 보게 될 텐데요, 처음 접한 경우에는 좀 어색할 수 있습니다. 먼저 임시 JSON 파일을 만들어보겠습니다. 대충 코드가 비슷하게 들어가 있죠? 이 파일을 저는 Jupyter를 이용해서 확인해 보겠습니다. 항상 import json을 해 주셔야 합니다. 그리고 가장 위에 있는 'users'에 속한 내용들을 가져와봤습니다. 위에 있는 내용을 통으로 다 가져온걸 볼 수 있습니다. 참고로 해당 데이터는 'list' 타입입니다. 그래서 하나씩 확인 해 보니 인덱싱이 가능한걸 볼 수 있습니다. 좀 더 편하게 for문으로 확인해 보면 아래와 같습니다. 자 그럼 해당 데이터 중..

[혼공머신러닝] 1장, 2장 정리

안녕하세요 Dibrary입니다. 이번에는 '혼자 공부하는 머신러닝+딥러닝' 책을 공부하면서 간단히 내용을 정리해보겠습니다. 혼공학습단에 선정되기도 했고, 어차피 머신러닝, 딥러닝에 대해 간략한 개괄정도밖에 몰랐어서 이참에 좀 제대로 정리해두고자 합니다. 머신러닝 = 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야 딥러닝 = 머신러닝 알고리즘 중 인공신경망을 기반으로 한 방법들을 지칭 이 책은 구글의 Colab에서 실행해보는 것으로 구성되어 있습니다. 제가 띄운 화면인데, 정말 심플하죠? Jupyter를 띄운것이랑 거의 차이가 없습니다. 단지, 몇 가지 설정을 통해 GPU나 TPU 등을 써볼 수 있다는 장점이 있습니다. 간단하게, 데이터가 눈에 띄게 2가지로 분류된 것을 볼 수 있습니다. 즉,..

반응형