Python 기계 학습 의 결정 트 리 와 랜 덤 숲
의사 결정 트 리 는 전형 적 인 10 대 데이터 발굴 알고리즘 중 하나 로 절차 그림 과 유사 한 수 형 구 조 를 통 해 그 규칙 은 바로 iIF...THEN..의 사상 이다.수치 형 은 변수의 예측 이나 이산 형 인 변수의 분류 에 사용 할 수 있다.이 알고리즘 은 간단 하고 직관 적 이 며 이해 하기 쉬 우 며 연구자 가 그 어떠한 분야 의 지식 이나 복잡 한 수학 논 리 를 파악 할 필요 가 없다.또한 알고리즘 의 출력 결 과 는 매우 강 한 해석 성 을 가진다.일반적인 상황 에서 결정 술 을 분류 기로 사용 하면 예측 정확도 가 높 아 지고 현재 점점 더 많은 업계 에서 이 알고리즘 을 실제 문제 의 해결 에 사용한다.
결정 트 리 구성
이것 은 전형 적 인 결정 트 리 로 글자 의 꼭대기 에서 아래로 자 라 는 과정 을 나타 낸다.나무 구 조 를 통 해 데이터 에 숨겨 진 규칙 을 직관 적 으로 표현 할 수 있다.그림 에서 짙 은 색 의 타원 은 나무의 뿌리 노드 가 타원 은 나무의 중간 노드 를 나타 내 고 사각형 은 수의 잎 노드 를 나타 내 며 모든 비 잎 노드 에 대해 조건 판단 에 사용 된다.잎 노드 는 최종 저장 의 분류 결 과 를 나타 낸다.
4.567917.뿌리 노드:가장자리 에 들 어가 지 않 고 가장자리 가 있다.최초의 특징 에 대한 질문 을 포함 합 니 다4.567917.중간 노드:들 어 가 는 쪽 도 있 고 나 가 는 쪽 도 있 으 며 들 어 가 는 쪽 은 하나 밖 에 없고 나 가 는 쪽 은 여러 개 있 을 수 있다.모두 특징 에 대한 질문 이다4.567917.잎 노드:가장자리 가 있 고 가장자리 가 나 오지 않 으 며 모든 잎 노드 는 하나의 유형 라벨 이다4.567917.서브 노드 와 부모 노드:두 개의 연 결 된 노드 에서 뿌리 노드 에 가 까 운 것 은 부모 노드 이 고 다른 하 나 는 서브 노드 이다노드 의 확정 방법
그러면 모든 비 잎 노드 의 필드 에 대한 선택 은 우리 가 분류 한 결과 의 좋 고 나 쁨 을 직접적 으로 결정 할 수 있다.그러면 이런 비 잎 노드 의 분 류 를 어떻게 하면 결 과 를 더욱 좋 고 효율 적 으로 할 수 있 는 지,즉 우리 가 말 한 정제 도,정제 도 에 대한 평가 에 있어 우 리 는 세 가지 기준 정보 이득,정보 이득 율 과 지 니 계 수 를 평가 할 수 있다.
4.567917.정보 이득 에 있어 우리 가 분류 하 는 과정 에서 모든 분류 조건 의 결과 에 대해 정보 이득 량 의 계산 을 할 것 이다.그리고 정보 이득 의 비 교 를 통 해 가장 큰 정보 이득 에 대응 하 는 분류 조건 을 추출 합 니 다.즉,정보 이득 치 에 대한 가장 큰 양은 우리 가 찾 는 가장 좋 은 분류 조건 이다.정보 이득 치 를 어떻게 계산 하 는 지 에 대해 서 는 많은 설명 을 하지 않 습 니 다.왜냐하면 이것 은 대량의 수학 계산 과 확률 지식 을 바탕 으로 해 야 하기 때 문 입 니 다.)"entropy"를 입력 하고 정보 엔트로피(Entropy)를 사용 합 니 다4.567917.정보 이득 을 계산 하 는 과정 에서 데이터 세트 유형 별 효과 가 서로 다른 값 을 받 을 수 있 기 때문에 정보 이득 의 계산 결과 가 더욱 클 수 있 지만 가끔 은 우리 데이터 세트 의 분류 효 과 를 진정 으로 나타 내지 못 하기 때문에 여기 서 정보 이득 율 을 도입 하여 정보 이득 값 에 대해 어느 정도 처벌 을 한다.간단 한 이 해 는 정보 이득 치 를 정 보 량 으로 나 누 는 것 이다4.567917.의사 결정 트 리 중의 정보 이득 율 과 정보 이득 기준 은 뿌리 노드 와 중간 노드 의 선택 을 실현 하고 이산 형 랜 덤 변 수 를 분류 할 수 밖 에 없다.연속 적 인 인 인 변 수 는 속수무책 이다.의사 결정 수가 연속 적 인 인 인 변 수 를 예측 할 수 있 도록 지 니 계수 기준 을 도입 하여 필드 선택 특징 을 한다."gini"를 입력 하고 지 니 계수(Gini Impurity)를 사용 하 십시오지 니 계수 에 비해 정보 엔 트로피 는 순도 에 민감 하고 순도 에 대한 징벌 이 가장 강하 다.그러나 실제 사용 에서 정보 엔트로피 와 지 니 계수 의 효 과 는 대체적으로 같다.정보 엔트로피 의 계산 은 비키니 계수 가 좀 느리다.왜냐하면 지 니 계수 의 계산 은 대수 와 관련 이 없 기 때문이다.또한 정보 엔트로피 는 순도 에 더욱 민감 하기 때문에 정보 엔트로피 를 기준 으로 할 때 결정 트 리 의 성장 이 더욱'정교 하 다'.따라서 고 차원 데이터 나 소음 이 많은 데이터 에 대해 정보 엔트로피 는 쉽게 적합 하고 지 니 계 수 는 이런 상황 에서 효과 가 비교적 좋다.
의사 결정 트 리 기본 절차
그 는 더 이상 사용 할 수 있 는 특징 이 없 거나 전체적인 순도 지표 가 가장 좋 을 때 까지 과정 을 순환 할 것 이다.결정 나 무 는 성장 을 멈 출 것 이다.그러나 모델 링 을 하 는 과정 에서 이런 높 은 정밀도 의 훈련 으로 인해 모델 은 훈련 을 바탕 으로 높 은 예측 정밀도 가 있 을 수 있 지만 테스트 집합 에서 효과 가 이상 적 이지 않 고 적합 한 문 제 를 해결 하기 위해 결정 트 리 에 대해 가지치기 작업 을 한다.
결정 트 리 의 가지치기 작업 은 세 가지 가 있 습 니 다.오차 가 가지치기 법 을 낮 추고 비관 적 인 가지치기 법,대가 복잡 도 가지치기 법 입 니 다.그러나 여기 서 우 리 는 sklearn 에서 우리 에 게 제공 하 는 결정 트 리 의 성장 을 제한 하 는 매개 변수 만 언급 합 니 다.
의사 결정 트 리 의 상용 매개 변수
DecisionTreeClassifier(criterion="gini"
# criterion 。 gini, 。 “entropy”, ,
# , “mse”, 。
,random_state=None
# , None 。
,splitter="best"
# , best ,
# random,
#
,max_depth=None
# , None, 。
,min_samples_leaf=1
# 1。
,min_samples_split=2
# 2。
,max_features=None
# , None 。 , , 0~1 , 。
,min_impurity_decrease=0
# , 0
,class_weight=None
# 。 None 。
)
코드 구현 결정 트 리 분류 트 리
import pandas as pd
from sklearn import tree
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_wine
import graphviz
# ,
wine=load_wine()
datatarget=pd.concat([pd.DataFrame(wine.data),pd.DataFrame(wine.target)],axis=1)
# 。
xtrain,xtest,ytrain,ytest=train_test_split(wine.data # 。
,wine.target# 。
,test_size=0.3# 70% 30%。
)
# 。
clf=tree.DecisionTreeClassifier(criterion="gini") # ,
# ,clf , 。
clf=clf.fit(xtrain,ytrain)
# , , score
clf.score(xtest,ytest)#
# , 。
cross_val_score(clf # 。
,wine.data#
,wine.target# 。
,cv=10#
#,scoring="neg_mean_squared_error"
# ,
).mean()
#
dot=tree.export_graphviz(clf
#,feature_names #
#,class_names #
,filled=True#
,rounded=True)#
graph=graphviz.Source(dot)
#
clf.feature_importances_
#[*zip(wine.feature_name,clf.feature_importances_)]
#apply
clf.apply(Xtest)
#predict /
clf.predict(Xtest)
의사 결정 트 리 다른 maxdepth 의 학습 곡선
from sklearn import tree
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_wine
import matplotlib.pyplot as plt、
wine=load_wine()
xtrain,xtest,ytrain,ytest=train_test_split(wine.data,wine.target,test_size=0.3)
trainscore=[]
testscore=[]
for i in range(10):
clf=tree.DecisionTreeClassifier(criterion="gini"
,random_state=0
,max_depth=i+1
,min_samples_split=5
,max_features=5
).fit(xtrain,ytrain)
# 。 2 ,
once1=clf.score(xtrain,ytrain)
once2=cross_val_score(clf,wine.data,wine.target,cv=10).mean()# clf.score(xtest,ytest)
trainscore.append(once1)
testscore.append(once2)
#
plt.plot(range(1,11),trainscore,color="red",label="train")
plt.plot(range(1,11),testscore,color="blue",label="test")
#
plt.xticks(range(1,11))
plt.legend()
plt.show()
result:일반적인 상황 에서 maxdepth 의 상승 훈련 집 과 테스트 집의 점 수 는 상대 적 으로 높 지만 와인 데이터 집의 데이터 양 이 비교적 적기 때문에 특별히 뚜렷하게 나타 나 지 않 았 다.그러나 우 리 는 여전히 최대 깊이 가 4 일 때 테스트 급 의 효과 절정 에 이 르 렀 음 을 알 수 있다.
격자 검색 분류 트 리 에서 의 응용
우 리 는 이 모델 에 대한 매개 변수 가 비교적 많다 는 것 을 발견 했다.만약 에 우리 가 상대 적 으로 점수 가 비교적 높 은 효과 가 좋 은 모델 을 얻 으 려 면 우 리 는 모든 매개 변수 에 대해 끊임없이 순환 하고 옮 겨 다 녀 야 마지막 에 가장 좋 은 답 을 얻 을 수 있다.그러나 이것 은 우리 가 인위적으로 실현 하 는 데 비교적 어렵 기 때문에 우 리 는 이러한 도 구 를 가지 게 되 었 다.격자 검색 은 가장 좋 은 효 과 를 자동 으로 실현 할 수 있 는 각종 매개 변수의 확정 이다.하지만 시간 이 많이 걸린다)
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_wine
from sklearn.model_selection import GridSearchCV #
wine = load_wine()
xtrain, xtest, ytrain, ytest = train_test_split(wine.data, wine.target, test_size=0.3)
clf = DecisionTreeClassifier(random_state=0) # random_state,
# parameters , 。 ,
parameters = {"criterion": ["gini", "entropy"]
, "splitter": ["best", "random"]
, "max_depth": [*range(1, 10)]
# ,"min_samples_leaf":[*range(5,10)]
}
# , , cv
GS = GridSearchCV(clf, cv=10, param_grid=parameters)
#
gs = GS.fit(xtrain, ytrain)
# best_params_
# ,( , )
best_choice = gs.best_params_
print(best_choice)
# best_score_
best_score = gs.best_score_
print(best_score)
회귀 트 리 중 다른 maxdepth 의합 사인 함수 데이터
import numpy as np
from sklearn.tree import DecisionTreeRegressor
import matplotlib.pyplot as plt
#
rng = np.random.RandomState(0)
# rng.rand(80, 1) 0 1 80 ,axis=0,
X = np.sort(5 * rng.rand(80, 1), axis=0)
#
y = np.sin(X).ravel()
#
y[::5] += 3 * (0.5 - rng.rand(16))
# , criterion
regr_1 = DecisionTreeRegressor(max_depth=2)
regr_2 = DecisionTreeRegressor(max_depth=5)
#
regr_1.fit(X, y)
regr_2.fit(X, y)
#
X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis]
# X_test
y_1 = regr_1.predict(X_test)
y_2 = regr_2.predict(X_test)
#
plt.figure()
plt.scatter(X, y, s=20, edgecolor="black",
c="red", label="data")
plt.plot(X_test, y_1, color="blue",
label="max_depth=2", linewidth=2)
plt.plot(X_test, y_2, color="green", label="max_depth=5", linewidth=2)
plt.xlabel("data")
plt.ylabel("target")
plt.title("Decision Tree Regression")
plt.legend()
plt.show()
결과:이미지 에서 알 수 있 듯 이 서로 다른 깊이 의 노드 에 있어 장점 과 단점 이 있다.maxdepth=5 의 경우 일반적인 상황 에서 원래 의 데이터 결과 와 가 깝 지만 일부 특수 한 소음 에 있어 소음 과 매우 가 깝 기 때문에 개별 점 에서 실제 데이터 와 차이 가 비교적 크다.즉,과 의합 현상(훈련 데이터 세트 에 대해 잘 판단 할 수 있 지만 테스트 데이터 세트 에 있어 결 과 는 이상 적 이지 않다)이다.maxdepth=2 일 때 대량의 데이터 세트 에 특별히 접근 할 수 는 없 지만 일부 소음 을 처리 할 때 잘 피 할 수 있 습 니 다.
분류 트 리 가 데 이 터 를 합성 하 는 표현
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import make_moons, make_circles, make_classification
from sklearn.tree import DecisionTreeClassifier
###### ######
#
X, y = make_classification(n_samples=100, # 100
n_features=2,#
n_redundant=0, # 0
n_informative=2, # 2
random_state=1,# 1
n_clusters_per_class=1 # 1
)
rng = np.random.RandomState(2) #
X += 2 * rng.uniform(size=X.shape) # 0~1
linearly_separable = (X, y) # X,
#plt.scatter(X[:,0],X[:,1])
# make_moons ,make_circles , datasets
moons=make_moons(noise=0.3, random_state=0)
circles=make_circles(noise=0.2, factor=0.5, random_state=1)
datasets = [moons,circles,linearly_separable]
figure = plt.figure(figsize=(6, 9))
i=1
# i i = 1
# , datasets for
for ds_index, ds in enumerate(datasets):
X, y = ds
#
X = StandardScaler().fit_transform(X)
#
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4,
random_state=42)
# ,
# X[:,0] ,X[:,1]
x1_min, x1_max = X[:, 0].min() - .5, X[:, 0].max() + .5
x2_min, x2_max = X[:, 1].min() - .5, X[:, 1].max() + .5
# ( 0.2 ),array1 ,array2
array1,array2 = np.meshgrid(np.arange(x1_min, x1_max, 0.2), np.arange(x2_min, x2_max, 0.2))
#
cm_bright = ListedColormap(['#FF0000', '#0000FF'])
########## #########
# (3,2) i
ax = plt.subplot(len(datasets), 2, i)
#
if ds_index == 0:
ax.set_title("Input data")
#
ax.scatter(X_train[:, 0],#
X_train[:, 1],#
c=y_train,# y_train cm_bright , 。
cmap = cm_bright, #
edgecolors = 'k'# ,
)
# , alpha = 0.4 ,
ax.scatter(X_test[:, 0], X_test[:, 1], c=y_test,cmap = cm_bright, alpha = 0.4, edgecolors = 'k')
#
ax.set_xlim(array1.min(), array1.max())
ax.set_ylim(array2.min(), array2.max())
#
ax.set_xticks(())
ax.set_yticks(())
#i+1
i += 1
####### #######
ax = plt.subplot(len(datasets), 2, i)
#
clf = DecisionTreeClassifier(max_depth=5).fit(X_train, y_train)
score = clf.score(X_test, y_test)
# np.c_
# ravel()
# , ,
Z = clf.predict(np.c_[array1.ravel(), array2.ravel()])
Z = Z.reshape(array1.shape)
cm = plt.cm.RdBu # 。
ax.contourf(array1# 。
, array2#
, Z# m, 。
, cmap=cm# , Z , , ,
, alpha=0.8
)
# ,
ax.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap=cm_bright, edgecolors = 'k')
ax.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=cm_bright, edgecolors = 'k', alpha = 0.4)
ax.set_xlim(array1.min(), array1.max())
ax.set_ylim(array2.min(), array2.max())
ax.set_xticks(())
ax.set_yticks(())
if ds_index == 0:
ax.set_title("Decision Tree")
#
ax.text(array1.max() - .3, array2.min() + .3, ('{:.1f}%'.format(score * 100)),
size = 15, horizontalalignment = 'right')
i += 1
#
plt.tight_layout()
plt.show()
여기 서 알 수 있 듯 이 결정 트 리 는 달 형 데이터 와 이 분류 데이터 에 대해 비교적 좋 은 분류 효과 가 있 지만 고리 형 데이터 에 대한 분류 효 과 는 그리 이상 적 이지 않다.
랜 덤 숲 이란 무엇 인가?
랜 덤 숲 은 집적 알고리즘 에 속 합 니 다.숲 은 글자 그대로 여러 개의 결정 트 리 로 구 성 된 집합 입 니 다.그리고 이런 서브 트 리 는 모두 충분히 자 라 는 CART 나무 이 고 랜 덤 으로 여러 개의 랜 덤 트 리 를 구성 하 는 것 은 랜 덤 으로 생 성 된 것 임 을 나타 냅 니 다.생 성 과정 은 bossstrap 표본 추출 법 을 사용 합 니 다.이 알고리즘 은 두 가지 장점 이 있 습 니 다.하 나 는 운행 속도 가 빠 르 고 다른 하 나 는 예측 정확도 가 높 습 니 다.가장 좋 은 알고리즘 중의 하나 로 불 린 다.
랜 덤 숲 의 원리
이 알고리즘 의 핵심 사상 은 여러 그루 의 결정 트 리 의 투표 체 제 를 이용 하여 분류 나 예측 문 제 를 해결 하 는 것 이다.분류의 문제 에 대해 서 는 복수 의 판단 결 과 를 투표 용 으로 활용 하고,소수 가 다수 에 복종 한 다 는 원칙 에 따라 최종 적 으로 표본 이 속 한 유형 을 확정 하고,예측 적 인 문제 에 대해 서 는 여러 그루 나무의 회귀 결 과 를 평균 해 최종 적 으로 표본 의 예측 을 확정한다.
무 작위 숲 의 모델 링 과정 을 형상 적 으로 묘사 하 는 것 이 바로 이렇다.
흐름:
4.567917.booststrap 표본 추출 법 을 이용 하여 원시 데이터 에서 K 개의 데이터 세트 를 집중 적 으로 생 성 하고 모든 데이터 세트 는 N 개의 관측 과 P 개의 독립 변 수 를 포함한다
무 작위 삼림 상용 매개 변수
분 류 된 랜 덤 숲 으로 예 를 들 면
RandomForestClassifier(n_estimators=10 #
,criterion="gini" # 。 。
,max_depth=None # , 。
,min_samples_split=2 # , 2。
,min_samples_leaf=1 # , 1
,max_features="auto" # ( ) None。
,bootstrap=True # # ( , ) , train test , True
,oob_score=False # # , false, bootstrap
,random_state=None # , None,
,calss_weight # ,
)
: n_estimators , 。 ,
n_estimators ,
n_estimators , ,
무 작위 삼림 응용 예시
from sklearn.datasets import load_wine
from sklearn.ensemble import RandomForestClassifier
wine=load_wine()
xtrain,xtest,ytrain,ytest=train_test_split(wine.data ,wine.target,test_size=0.3)
rfc=RandomForestClassifier(random_state=0
,n_estimators=10#
,bootstrap=True
,oob_score=True#
).fit(xtrain,ytrain)
rfc.score(xtest,ytest)
rfc.oob_score_#
rfc.predict_proba(wine.data)# target
rfc.estimators_#
rfc.estimators_[1].random_state# random――state
매개 변수 nestimators 가 랜 덤 숲 에 미 친 영향
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine
from sklearn.ensemble import RandomForestClassifier
wine=load_wine()
score=[]
for i in range(100):
rfc=RandomForestClassifier(random_state=0
,n_estimators=i+1
,bootstrap=True
,oob_score=False
)
once=cross_val_score(rfc,wine.data,wine.target,cv=10).mean()
score.append(once)
plt.plot(range(1,101),score)
plt.xlabel("n_estimators")
plt.show()
print("best srore = ",max(score),"
best n_estimators = ",score.index(max(score))+1)
출력:best srore = 0.9833333333333334
best n_estimators = 12
결정 트 리 와 랜 덤 숲 효과
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine
from sklearn.ensemble import RandomForestClassifier
wine=load_wine()
score1=[]
score2=[]
for i in range(10):
rfc=RandomForestClassifier(n_estimators=12)
once1=cross_val_score(rfc,wine.data,wine.target,cv=10).mean()
score1.append(once1)
clf=DecisionTreeClassifier()
once2=cross_val_score(clf,wine.data,wine.target,cv=10).mean()
score2.append(once2)
plt.plot(range(1,11),score1,label="Forest")
plt.plot(range(1,11),score2,label="singe tree")
plt.legend()
plt.show()
이미지 에서 직관 적 으로 볼 수 있 듯 이 여러 개의 결정 트 리 로 구 성 된 랜 덤 삼림 집적 알고리즘 의 모델 효 과 는 하나의 결정 트 리 의 효과 보다 현저히 우수 하 다.
예 를 들 어 랜 덤 숲 으로 유방암 데 이 터 를 조절 하 는 것 이다.
n_estimators
from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
cancer = load_breast_cancer()
scores=[]
for i in range(1,201,10):
rfc = RandomForestClassifier(n_estimators=i, random_state=0).fit(cancer.data,cancer.target)
score = cross_val_score(rfc,cancer.data,cancer.target,cv=10).mean()
scores.append(score)
print(max(scores),(scores.index(max(scores))*10)+1)
plt.figure(figsize=[20,5])
plt.plot(range(1,201,10),scores)
plt.show()
0.9649122807017545 111max_depth
from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
cancer = load_breast_cancer()
scores=[]
for i in range(1,20,2):
rfc = RandomForestClassifier(n_estimators=111,max_depth=i, random_state=0)
score = cross_val_score(rfc,cancer.data,cancer.target,cv=10).mean()
scores.append(score)
print(max(scores),(scores.index(max(scores))*2)+1)
plt.figure(figsize=[20,5])
plt.plot(range(1,20,2),scores)
plt.show()
0.9649122807017545 11gini 에서 entropy 로 변경
from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
cancer = load_breast_cancer()
scores=[]
for i in range(1,20,2):
rfc = RandomForestClassifier(n_estimators=111,criterion="entropy",max_depth=i, random_state=0)
score = cross_val_score(rfc,cancer.data,cancer.target,cv=10).mean()
scores.append(score)
print(max(scores),(scores.index(max(scores))*2)+1)
plt.figure(figsize=[20,5])
plt.plot(range(1,20,2),scores)
plt.show()
0.9666666666666666 7gini 와 entropy 결과 그림:
파 이 썬 기계 학습 의 결정 트 리 와 랜 덤 숲 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 결정 트 리 와 랜 덤 숲 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.