2017-03-11 11 views
2

diabetes_x = diabetes.data[:, np.newaxis, 0]の行では、この糖尿病のデータ構造からベクトルとして20個の特徴の1つを選択します。 このxベクトルの一部は機械学習機能に供給され、他の部分はテストに使用されます。Pythonでのループの塗りつぶしの行列

最後に、これらのテストxベクトルを予測関数に供給してy_predict=regr.predict(diabetes_x_train)を取得します。

質問は次のとおりです:どのようにループすることができるので、ベクトルの代わりに行列を取得して20のすべてのフィーチャを満たすことができますか?例えば

:あなたはすべて選択するには、この試みることができる

from sklearn import linear_model # Machine Learning tool 
import numpy as np # Mathematics and Linear Algebra tool 
import pandas as pd # data structure tool 
import matplotlib.pyplot as plt # scientific plotting tool 
import seaborn as sns # # scientific plotting tool 
%matplotlib inline 

### Linear Regression example 
from sklearn import datasets, linear_model 

# Load the diabetes dataset 
diabetes = datasets.load_diabetes() 
# Use only one feature 
diabetes_x = diabetes.data[:, np.newaxis, 0] # change 0 to something else for other features 
# Split the data into training/testing sets 
diabetes_x_train = diabetes_x[:-20] 
diabetes_x_test = diabetes_x[-20:] 
# Split the targets into training/testing sets 
diabetes_y_train = diabetes.target[:-20] 
diabetes_y_test = diabetes.target[-20:] 
# Create linear regression object 
regr = linear_model.LinearRegression() 
# Train the model using the training sets 
regr.fit(diabetes_x_train, diabetes_y_train) 
# Obtain prediction based on previous experience 
y_predict=regr.predict(diabetes_x_train) 

答えて

1

diabetes_xdiabetes_x_testmxn y_predictあり、mxn =>diabetes_x_trainであること。これは、Pythonのコードであるmxn

です10個の特徴(それらのうち合計10個が少なくともsklearn 0.18.1およびであるi)は、Windows上で使用しています:

diabetes_x = diabetes.data[:, range(10)] # select 10 features 
# Split the data into training/testing sets 
diabetes_x_train = diabetes_x[:-20,:] 
print diabetes_x_train.shape 
# (422L, 10L) 
diabetes_x_test = diabetes_x[-20:,:] 
print diabetes_x_test.shape 
# (20L, 10L) 
# Split the targets into training/testing sets 
diabetes_y_train = diabetes.target[:-20] 
diabetes_y_test = diabetes.target[-20:] 
# Create linear regression object 
regr = linear_model.LinearRegression() 
# Train the model using the training sets 
regr.fit(diabetes_x_train, diabetes_y_train) 
# Obtain prediction based on previous experience 
y_predict=regr.predict(diabetes_x_test) 
#print y_predict 

plt.plot(range(len(diabetes.target)), diabetes.target, 'r-', label='test') 
plt.plot(range(len(diabetes_y_train), len(diabetes.target)), y_predict, 'g-', label='predict') 
plt.legend() 
plt.show() 

enter image description here

+0

あなたが同じ線形回帰MODELL 'REGR' に、すべての10個の機能を養うのですか?それとも、pythonは自動的に各入出力ペアごとに別々のものを作るのですか? –

+1

'diabetes_x_train'データセットの列数は、トレーニングデータ内のフィーチャの数である10(これは、'シェイプ 'から表示されます)からです。このデータセットを 'sklearn'フィット関数で提供すると、10個のフィーチャすべてが自動的に考慮されます。 –

関連する問題