2017-07-26 15 views
0

シークレットが初めてで、複数の連続するデータ列に基づいて値を予測する方法を学ぶ必要があります。ここでは、次のような連続データを持ついくつかのデータ列があります。シークレットを使用して連続データの値を予測する

ColA, ColB, ColC, ColD, ColE 
8.0  307.0 130.0 3504.0 12.0 
15.0 350.0 165.0 3693.0 11.5 
18.0 318.0 150.0 3436.0 11.0 
16.0 304.0 150.0 3433.0 12.0 
17.0 302.0 140.0 3449.0 10.5 
15.0 429.0 198.0 4341.0 10.0 
14.0 454.0 220.0 4354.0 9.0 
14.0 440.0 215.0 4312.0 8.5 
.... 
.... 

私が行う必要があるのは、上記のデータを供給することによって作成されたモデルに基づいてColAの値を予測することだけです。予測値の分類の例のみを示しています。 ColB、ColC、ColD、ColE値のいずれか/すべてが与えられた場合の実際の値の取得方法

誰でもこの方法でscikitでやってくれるのですか?

+0

を支援しますデータを使用してモデルをフィッティングするには、predict()メソッドを使用して予測を取得します。あなたに私に例を挙げてもらいたいのですか?はいの場合はデータをアップロードできますか? – sera

+0

ありがとうございました。ここにいくつかのコードスニペットを置くことができれば助かります。私は表形式の構造にデータをロードする方法を知っています。私はメソッドに合うように渡されたパラメータとそれをコーディングする正しい方法と混同しています。すべてのデータがsample_dataという構造体にロードされているとします。 ColB、ColC、ColD、ColEのサブモデルをXとして、ColAをyとして渡す必要がありますか?予測のために価値を渡すには? – IndikaU

+0

はい、これは正しいアプローチです。私は数分でいくつかのコードを投稿します。 XとYは配列でなければなりません。また、pandasモジュールは、データのロード/分割に本当に役立ちます。あなたが投稿したデータを使って簡単な例を作成します。 – sera

答えて

0

まず、私はパンダを使用できるようにデータをCSVファイルに変換しました。 CSVがhere

例:

import pandas as pd 
from sklearn.linear_model import LinearRegression 
from sklearn.model_selection import train_test_split 

df = pd.read_csv('data.csv',header = None) 

#Fill the missing data with 0 and the '?' that you have with 0 
df = df.fillna(0) 
df= df.replace('?', 0) 

X = df.iloc[:,1:7] 

#I assume than the y is the first column of the dataset as you said 
y = df.iloc[:,0] 

#I split the data X, y into training and testing data 
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42) 

#Convert pandas dataframes into numpy arrays (it is needed for the fitting) 
X_train = X_train.values 
X_test = X_test.values 
y_train = y_train.values 
y_test = y_test.values 

#Create and fit the model 
model = LinearRegression() 

#Fit the model using the training data 
model.fit(X_train,y_train) 

#Predict unseen data 
y_predicted =model.predict(X_test) 
scores = model.score(X_test, y_test) 

print(y_predicted) 
print(scores) 

最初の印刷結果は、は見えない(X_test)機能の値を予測します。予測値は、データセットの第1列に対応します。

2番目の印刷の結果は、予測の決定係数R^2を返します。

もっとhere

P.S:あなたが対処したい問題があまりにも一般的です。

まず、sklearnのStandardScalerメソッドを使用してフィーチャ(X配列)をスケーリングできます。これは一般的には良いことですが、パフォーマンスを向上させることはできますが、それはあなたにあります。詳細here

次に、train_test_splitを使用する代わりに、データを分割する他の方法を使用できます。

最後に、LinearRegressionではなく、他の方法を使用できます。

希望これは、あなたがした後(http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html)[ここを参照してください]線形回帰のようなモデルの多くを使用することができます

+0

ありがとうございました。 – IndikaU

+0

@IndikaU私は助けることができてうれしい。私の答えをupvoteしてもよろしいですか? – sera

+0

私はupvoteをクリックしました。システムが後で更新されることを願っています。 – IndikaU

関連する問題