Deep Learning

분류 모델

HoneyIT 2020. 8. 11. 19:27
반응형

mushrooms.csv
0.36MB

 

버섯 데이터 정보

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