반응형
def read_data(fname):
mr = pd.read_csv(fname, header=None)
다음과 같은 버섯 정보 csv파일을 불러온다
맨 앞 컬럼의 'p', 'e'는 독이 있어 못 먹는 버섯과 먹을 수 있는 버섯을 의미한다.
train_label = []
train_data = []
test_label = []
test_data = []
학습시킬 독립변수와 종속변수, 테스트 할 독립변수와 종속변수를 선언한다.
for row_index, row in mr.iterrows():
r=random.randint(1, 5)#1은 평가, 나머지는 학습
if r==1:
test_label.append(ord(row.loc[0]))
else:
#첫 번째 컬럼의 값 => lable
train_label.append(ord(row.loc[0])) #원하는 컬럼만 추출 0번째 컬럼 추출
pandas 의 iterrows 함수를 이용해 한 줄씩 불러온다.
랜덤함수를 이용하여 추출한 row의 1/5는 테스트용 4/5는 학습용으로 넣었다.
여기서 ord는 문자형의 값들을 아스키 코드로 변환한다.
loc로 해당 row의 0번째 인덱스 값을 넣어줍니다.
other_data = []
for v in row.loc[1:]:
other_data.append(ord(v))# ord : 아스키 코드로 변경
#나머지 컬럼의 값들 => other_data는 독립 변수수
if r==1:
test_data.append(other_data)
else:
train_data.append(other_data)
return train_label, train_data, test_label, test_data
나머지 값들을 test_data 또는 train_data에 넣어준다.
각 값들을 반환한다.
tr_l, tr_d, te_l, te_d = read_data('mushrooms.csv')
csv 파일을 각각의 변수에 넣어준다.
clf = svm.SVC()
분류 모델 svm 객체를 생성한다.
clf.fit(tr_d, tr_l)
학습에 사용될 값들을 넣고 학습시킨다.
result=clf.predict(te_d)
학습된 객체를 바탕으로 예측값을 가져온다.
score = metrics.accuracy_score(result,te_l)
받아온 예측 값과 실제 값을 metrics함수를 이용하여 비교한다.
99%의 일치율이 나오는 것을 볼 수 있다.
반응형
'Deep Learning' 카테고리의 다른 글
분류 모델 2 (0) | 2020.08.12 |
---|---|
군집화 KMean 알고리즘 2 (0) | 2020.08.12 |
군집화 KMean 알고리즘 (1) | 2020.08.12 |
선형회귀 모델 (0) | 2020.08.11 |
딥러닝 기초 (0) | 2020.08.10 |