Pythonの多変量線形回帰


9

多変量線形回帰を実装するPythonパッケージを探しています。

(用語の注記:多変量回帰は複数の従属変数がある場合を扱い、多重回帰は1つの従属変数があるが複数の独立変数がある場合を扱います。)


私もこれに興味がありますが、非線形変換後の特徴ベクトルだけが必要です。したがって、行はとなり、 2つの変数を持つ次数2のモデルを表します。[1バツ1バツ2バツ1バツ2バツ12バツ22]
ピノキオ

回答:


8

sklearn.linear_model.LinearRegressionを引き続き使用できます。y従属変数と同じ数の列を持つ行列を出力にしてください。非線形のものが必要な場合は、さまざまな基底関数を試したり、多項式機能を使用したり、回帰に別の方法(NNなど)を使用したりできます。


1
多変量ロジスティック回帰について具体的に質問していますか?あなたが一度に多くの分類を実行したいので?多変量線形回帰は確かに実装されています。sklearnライブラリを使用するには、ロジスティック回帰を別の方法でフレーム化する必要があります。
jamesmf

申し訳ありませんが、誤解して申し訳ありません。線形回帰について考えているsklearn.linear_model.LogisticRegressionのドキュメントを読んでいました。今後の読者を混乱させないように、コメントを削除します。ありがとう!
フランクダーノンコート、2015年

多項式の特徴ベクトルを取得する方法を強調したいと思います...
ピノキオ


2

ちょうど楽しみのために、タプルを形成することにより、手動で機能を計算できます seq=d1dN そのような Sあなたメートルseq=Σ=1ND。これらのタプルを形成すると、各エントリは、現在の未加工の機能を引き上げる力を示します。だから、言って12 単項式にマッピングされます バツ1バツ22バツ

タプルを取得するコードは次のとおりです。

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

例。おそらく、一般化に関心がある場合は、正則化線形回帰を行う方が良いでしょう。


Yuvalへの謝辞、支援のためのCS交換です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.