0

WindowsでPython 2.7を使用する。分類問題のために特徴T1およびT2を使用してロジスティック回帰モデルを適合させ、目標はT3です。scikitで異なるフィーチャ次元を持つロジスティック回帰モデルlearn

T1T2の値と私のコードを示します。問題は、T1が次元5を持ち、T2が次元1を持っているので、scikit-learnロジスティック回帰訓練によって正しく活用されるように、それらをどのように前処理するべきですか?

ところで、私は学習サンプル1の平均、T1のその機能は[ 0 -1 -2 -3]で、T2の特徴は、学習サンプル2のために、[0]で、T1のその機能は[ 1 0 -1 -2]T2の特徴である[1]で、...

import numpy as np 
from sklearn import linear_model, datasets 

arc = lambda r,c: r-c 
T1 = np.array([[arc(r,c) for c in xrange(4)] for r in xrange(5)]) 
print T1 
print type(T1) 
T2 = np.array([[arc(r,c) for c in xrange(1)] for r in xrange(5)]) 
print T2 
print type(T2) 
T3 = np.array([0,0,1,1,1]) 

logreg = linear_model.LogisticRegression(C=1e5) 

# we create an instance of Neighbours Classifier and fit the data. 
# using T1 and T2 as features, and T3 as target 
logreg.fit(T1+T2, T3) 

T1、

[[ 0 -1 -2 -3] 
[ 1 0 -1 -2] 
[ 2 1 0 -1] 
[ 3 2 1 0] 
[ 4 3 2 1]] 

T2、

[[0] 
[1] 
[2] 
[3] 
[4]] 

答えて

1

numpy.concatenateを使用してフィーチャデータ行列を連結する必要があります。

import numpy as np 
from sklearn import linear_model, datasets 

arc = lambda r,c: r-c 
T1 = np.array([[arc(r,c) for c in xrange(4)] for r in xrange(5)]) 
T2 = np.array([[arc(r,c) for c in xrange(1)] for r in xrange(5)]) 
T3 = np.array([0,0,1,1,1]) 

X = np.concatenate((T1,T2), axis=1) 
Y = T3 
logreg = linear_model.LogisticRegression(C=1e5) 

# we create an instance of Neighbours Classifier and fit the data. 
# using T1 and T2 as features, and T3 as target 
logreg.fit(X, Y) 

X_test = np.array([[1, 0, -1, -1, 1], 
        [0, 1, 2, 3, 4,]]) 

print logreg.predict(X_test) 
+0

ありがとうございました。連結後、ロジスティック回帰には、トレーニングサンプルごとに6つの機能があると思いますか? –

+0

ところで、 'X_test'の目的は何ですか? –

+1

@LinMaはい、そうです。連結後、6つの機能があります(T1の最初の5つの機能とT2の最後の機能)。 –

関連する問題