반응형

데이터 과학 5

C# 머신러닝 프로젝트: NOCHES 멤버의 말투를 잡아라!

환영합니다, Rolling Ress의 카루입니다. ​ C# 으로 머신러닝 모델을 학습시킬 수 있다는 걸 알고.. 부리나케 준비했습니다. NOCHES 친구들과 함께 실험을 진행했는데, 확인해보시죠. Rolling Ress 실험 개요 ======================== 진행자: 카루 진행기관: Rolling Ress ​ 피실험자: ㄴ**, ㅂ**, ㅅ**, ㅅ**, ㅇ** ​ 실험 개요: - 머신러닝을 통한 기계의 언어 분류 - 피실험자의 NOCHES 카톡 데이터를 사용할 예정 ​ - 개인의 카톡 데이터를 학습시킨 뒤 임의의 문장을 넣었을 때 누구의 말투와 가장 비슷한지 알려줌 ​ 기대 효과: - 다른 멤버 말투 따라하기 전에 진짜 그 멤버 말투인지 검증 가능 ​ 피실험자 유의사항: 없음. 평소처럼..

[C# ML] C#으로 머신러닝 모델 구축하기 (ML.NET)

환영합니다, Rolling Ress의 카루입니다. import sklearn import tensorflow 보통 머신러닝과 딥러닝 학습을 할 땐 파이썬을 사용하죠. ​ 그런데 제 주력 언어는 C#입니다. (원래는 C++이었지만, 최근에 UWP 개발을 하면서 바뀌었어요...ㅎㅎ) 그런데 C#에서는 파이썬의 사이킷런과 텐서플로를 이용하기 힘들죠. 뭐, IronPython을 이용해서 편법을 쓸 수는 있어요. 그런데 C#에서는 dynamic으로 받아야 하고, 무엇보다 C#은 컴파일 언어인데 비해 파이썬은 인터프리터 언어라, 괴리감이 엄청납니다. 그래서 힘들더라고요. https://dotnet.microsoft.com/en-us/learn/ml-dotnet/get-started-tutorial/install M..

C# & .NET 2022.02.20

머신러닝&딥러닝 기초(6): 처음 만드는 인공신경망

이제 머신러닝을 어느 정도 했으니, 딥러닝으로 넘어가보자. tensorflow를 설치할 건데, 아래 명령어를 통해서 설치할 수 있다. PS > pip install tensorflow 설치가 완료되면 다시 주피터 노트북을 켠다. 참고로 이 과정들이 귀찮다면, 그냥 구글 코랩을 사용하면 된다. 이미 설치도 다 되어 있다. 어쨌든, 완료되면 맨 위의 코드를 실행한다. 전달받은 데이터를 확인해보면 뭔가 많다. 이건 흑백 사진이다. cmap에서 gray_r은 회색으로 하되, 이미지를 반전시키라는 뜻이다. 0은 검은색이고 255(0xFF)는 흰색이다. 그런데 0은 연산을 해봤자 곱해버리면 0이다. 배경보다 피사체에 집중하기 위해 일부러 색 정보를 반전시키는 것이다. 회색이 아니라 다른 계열로도 설정할 수 있다. ..

머신러닝&딥러닝 기초(5): 결정 트리, 교차 검증과 그리드 서치, 앙상블

이진 분류에는 트리가 제격이다. 두 가지의 애매한 것들이 있을 때, 이진 트리를 분류할 수 있다. 이때 트리는 위에서 아래 방향으로 진행되며, 조건식이 참인 경우 왼쪽으로, 거짓인 경우 오른쪽으로 진행된다. 보통 자료 저장용 트리의 경우엔 값이 작으면 왼쪽으로, 크면 오른쪽으로 저장된다. 그러나 머신러닝에서의 결정 트리는 약간 다르다. 지금 보면 트리 내부에 조건식이 하나 달려있다. 이것을 토대로 조건식이 참인 노드는 왼쪽으로, 거짓인 노드는 오른쪽으로 파생된다. gini는 gini impurity, 지니 불순도를 뜻한다. 음성 클래스 비율을 n, 양성 클래스 비율을 p라 할 때, 지니 불순도 g는 이렇게 계산할 수 있다. ​ 어느 한 쪽에 클래스가 치우칠수록 gini 불순도는 0에 가까워진다. 0에 도..

머신러닝&딥러닝 기초 (4): 머신러닝 기초 다지기

환영합니다, Rolling Ress의 카루입니다. ​ 눈이 아파요. target data에 둘 이상의 클래스가 포함된 것을 다중 분류(multiclass classification)라고 한다. 이것은 시그모이드 함수의 함수식이다. 수학시간에 노가다를 뛰었던... 그래프를 보면 알겠지만, 시그모이드 함수는 다음과 같은 성질을 갖는다. 이 함수는 양 끝 값(이란 건 없지만, 그래프에서 직관적으로 볼 수 있듯이)이 0과 1에 각각 수렴한다. 즉, 모든 실수를 0과 1 사이에 대응시킬 수 있다는 의미이다. 어쩌면 이걸 가지고 전체 실수의 개수와 (0, 1)의 실수의 개수가 같다는 걸 증명해도 되긴 하겠다. 뭐...그래. 아무튼, 치역이 (0, 1)이므로 (극한값까지 잘 응용한다면) 0~100%의 확률을 추출하는..

반응형