このチュートリアルに従おうとしています。
TensorFlow が出てきたばかりで、私は本当にそれを理解しようとしています。Lasso、Ridge、ElasticNet などのペナルティ付き線形回帰と、.NET でのその使用法に精通していますscikit-learn
。
Lasso 回帰の場合scikit-learn
、回帰アルゴリズムに入力する必要があるのは、DF_X
[M x N 次元の属性マトリックス (pd.DataFrame)] とSR_y
[M 次元のターゲット ベクトル (pd.Series)] だけです。TensorFlowのVariable
構造は私にとって少し新しいものであり、入力データを必要なものに構造化する方法がわかりません。
ソフトマックス回帰は分類用のようです。 (M x N 属性マトリックス) と(M 次元ターゲット ベクトル) を再構築して線形回帰に入力するにはどうすればよいですか?DF_X
SR_y
tensorflow
線形回帰を実行するための現在の方法では、pandas、numpy、および sklearn を使用しています。以下に示します。TensorFlow に慣れてきた人にとって、この質問は非常に役立つと思います。
#!/usr/bin/python
import pandas as pd
import numpy as np
import tensorflow as tf
from sklearn.linear_model import LassoCV
#Create DataFrames for attribute and target matrices
DF_X = pd.DataFrame(np.array([[0,0,1],[2,3,1],[4,5,1],[3,4,1]]),columns=["att1","att2","att3"],index=["s1","s2","s3","s4"])
SR_y = pd.Series(np.array([3,2,5,8]),index=["s1","s2","s3","s4"],name="target")
print DF_X
#att1 att2 att3
#s1 0 0 1
#s2 2 3 1
#s3 4 5 1
#s4 3 4 1
print SR_y
#s1 3
#s2 2
#s3 5
#s4 8
#Name: target, dtype: int64
#Create Linear Model (Lasso Regression)
model = LassoCV()
model.fit(DF_X,SR_y)
print model
#LassoCV(alphas=None, copy_X=True, cv=None, eps=0.001, fit_intercept=True,
#max_iter=1000, n_alphas=100, n_jobs=1, normalize=False, positive=False,
#precompute='auto', random_state=None, selection='cyclic', tol=0.0001,
#verbose=False)
print model.coef_
#[ 0. 0.3833346 0. ]