정규표현식
import re하여 사용한다.
표현하고자 하는 식은 p = re.compile()에 괄호안에 적는다.
<주로 사용하는 기능>
a = 'gy 010-1234-5678 hello@gmail.com Soeul'
p = re.compile(r'(?P<name>.+)\s(>P<phone>\d.+\d.+\d)\s(?P<mail>.+@.+)\s(?P<address>.+)')
p.match(a)
머신 러닝(scikit-learn 활용)
scikit-learn으로 xor, and 연산 학습해보기를 진행했다.
내가 생각한 방법보다 간단했다.
svm, KNeighborsClassifier을 사용했다.
이를 이용하여 난 or연산을 학습해 보겠다.
import pandas as pd
from sklearn import svm, metrics
from sklearn.neighbors import KNeighborsClassifier
or_input= [ [0, 0, 0], [1, 0, 1], [0, 1, 1], [1, 1, 1]]
or_df = pd.DataFrame(or_input)
or_data = or_df[[0, 1]] # 데이터만 추출
or_label = or_df[2] # 결과만 추출
model = svm.SVC() # svm모델 사용
model.fit(or_data, or_label) # 모델에 데이터와 결과 입력
pre = model.predict(or_data) # 데이터를 넣었을떄의 결과 예측
clf = KNeighborsClassifier(n_neighbors=1) # KNN모델 사용
clf.fit(or_data, or_label)
pre = clf.predict(or_data)
ac_score = metrics.accuracy_score(xor_label, pre) # 정답율 출력
print("정답률 =", ac_score)
이처럼 코드를 작성한다. 하지만 훈련데이터와 테스트 데이터가 같은 값이라 정답율은 1.0이 나온다. 학습이 잘된건 사실이지만 너무 간단한 모델이라 정확히 알기 힘들다.
시간 복잡도 (Big-O)
알고리즘의 복잡도를 단순화할 때 사용. 최고차항을 제외한 모든 항을 버리고 계산한다.
예를 들어 모든 항의 복잡도를 더해서 5n+1이 나왔을 경우, 복잡도는 O(n)이다.
git
로컬저장소는 내 컴퓨터에서 작업하는 장소이고,
원격 저장소는 로컬에서 만든 버전을 온라인에 업로드하는 곳이다.
로컬 저장소에서는
git init -> git add -> git commit순으로 버전을 관리.
원격저장소에서는
git init -> git add -> git commit -> git push.
원격 저장소를 사용하기 위해서는 깃헙에 로그인이 되어야하며, 새로 만든 레포지토리와
git remote add origin 'address'
를 이용하여 연결해준 후,
git push origin master
로 원격저장소에 업로드해준다.