Day 8 데이터 수집, 분석

가연·2024년 12월 16일

패키지

pandasscikit-learn(ML) + optunaTF/PyoTorch
DFDF/ArrayTensor(Array)

를 이용하여 기획, 새로운 부분 시도

  • 데이터 수집/분석, 머신러닝(ML), DL에 기본적인 모델 : 함수
  • 딥러닝(DL) : 최신 모델(PyTorch -> 클래스 프로젝트), 연구 시점과 지금 시점이 안 맞아서 에러가 날 수 있음. 이 경우 직접 코드를 보고 에러 잡아야 함 -> 클래스

ex/ 국어, 영어, 수학, 과학 점수 처리
학생 전체는 list로, 개별 학생의 과목 정보는 dict로 할 때,
students = [ ]

클래스

여러개의 기능을 구조적으로 작성하여 직접 조작/설계 할 수 있음.

class Class :
#생성자 : 필요한 초기 속성 세팅. 
	def __init__( , , , ):
    	self.설정한 속성값 = 속성값 초기화
    
    #필요한 기능 추가 : 함수
    def fun(self):
    	summ = + + ..
        return summ
        .
        .
        .

ex/

class Studnet:
	 def __init__(self, name, kor, math, english, science):
        self.name = name
        self.korean = kor
        self.math = math
        self.english = english
        self.science = science
    def get_sum(self):
        score_sum = self.korean + self.math + self.english + self.science
        return score_sum
    def get_avg(self):
        scroe_avg = self.get_sum() /4
        return scroe_avg
    def to_string(self):
        temp ="{0}\t{1}\t{2}".format(self.name,self.get_sum(),self.get_avg())
        return temp
        
students =[
    Studnet(  "AAA", 98, 93, 79, 95),
    Studnet(  "BBB", 78, 87, 87, 90),
    Studnet(  "CCC", 90, 85, 89, 92),
    Studnet(  "DDD", 80, 96, 99, 93),
    Studnet(  "EEE", 70, 80, 89, 95),
]        
        
students[0].name 
# -> 'AAA'
students[0].get_avg()
# -> 91.25
print(students[0].to_string())
# -> 'AAA   365   91.25'

특별 메서드 : 기본 연산자를 클래스에 적용할 수 있게 기능 부여. 일반 연산자와 클래스 연결하면 됨.
students[0].get_sum() > students[3].get_sum()
-> False
클래스 안에 추가해도 됨.

    def __eq__(self, value): # std1 == std2 , get_sum
        return self.get_sum() == value.get_sum()
        # 참고) 국어점수가 기준 : self.korean == value.korean
    def __ne__(self, value): # std1 != std2, get_sum
        return self.get_sum() != value.get_sum()
    def __gt__(self, value): # std1 > std2, get_sum
        return self.get_sum() > value.get_sum()
    def __ge__(self, value): # std1 >= std2, get_sum
        return self.get_sum() >= value.get_sum()
    def __lt__(self, value): # std1 < std2, get_sum
        return self.get_sum() < value.get_sum()
    def __le__(self, value): # std1 <= std2, get_sum
        return self.get_sum() <= value.get_sum()

클래스 내부의 속성값에 대한 외부접근을 막기 위해서는 속성값을 지정 .__

class Square:
    def __init__(self, size):
        self.__size = size
    def get_area(self):
        return self.__size * self.__size
    def get_size(self):
        return self.__size
    def set_size(self, value):
        self.__size = value

reference를 이용하여 다른 사람이 만들어둔 클래스를 활용해도 된다.

0개의 댓글