답변:
sklearn.linear_model.LinearRegression을 계속 사용할 수 있습니다 . y
종속 변수가있는 열 수만큼 출력 을 행렬로 만들면됩니다. 비선형 을 원하면 다른 기본 함수를 시도하거나 다항식 기능을 사용하거나 NN과 같은 다른 회귀 방법을 사용할 수 있습니다.
재미를 위해 튜플을 형성하여 손으로 기능을 계산할 수 있습니다. 그런 . 이러한 튜플을 구성하면 각 항목에 현재 원시 기능이 증가해야하는 전력이 표시됩니다. 그래서 말해 monomial에 매핑 .
튜플을 얻는 코드는 다음과 같습니다.
def generate_all_tuples_for_monomials(N,D):
if D == 0:
seq0 = N*[0]
sequences_degree_0 = [seq0]
S_0 = {0:sequences_degree_0}
return S_0
else:
# S_all = [ k->S_D ] ~ [ k->[seq0,...,seqK]]
S_all = generate_all_tuples_for_monomials(N,D-1)# S^* = (S^*_D-1) U S_D
print(S_all)
#
S_D_current = []
# for every prev set of degree tuples
#for d in range(len(S_all.items())): # d \in [0,...,D_current]
d = D-1
d_new = D - d # get new valid degree number
# for each sequences, create the new valid degree tuple
S_all_seq_for_deg_d = S_all[d]
for seq in S_all[d]:
for pos in range(N):
seq_new = seq[:]
seq_new[pos] = seq_new[pos] + d_new # seq elements dd to D
if seq_new not in S_D_current:
S_D_current.append(seq_new)
S_all[D] = S_D_current
return S_all
선형 대수학을 알고 있다면 회귀하기가 쉬워야합니다.
c = pseudo_inverse(X_poly)*y
예. 일반화에 관심이 있다면 정규 선형 회귀 분석을 수행하는 것이 좋습니다.