2016-07-17 20 views
0

私はPythonで予測モデルを作成し、いくつかの異なる回帰モデルを相互検証を通じて比較しようとしています。Rの順序ロジスティック回帰をクロスバリデーションする(rpy2を使用)

from rpy2.robjects.packages import importr 
import rpy2.robjects as ro 

df = pd.DataFrame() 
df = df.append(pd.DataFrame({"y":25,"X":7},index=[0])) 
df = df.append(pd.DataFrame({"y":50,"X":22},index=[0])) 
df = df.append(pd.DataFrame({"y":25,"X":15},index=[0])) 
df = df.append(pd.DataFrame({"y":75,"X":27},index=[0])) 
df = df.append(pd.DataFrame({"y":25,"X":12},index=[0])) 
df = df.append(pd.DataFrame({"y":25,"X":13},index=[0])) 

# Loads R packages. 
base = importr('base') 
mass = importr('MASS') 

# Converts df to an R dataframe. 
from rpy2.robjects import pandas2ri 
pandas2ri.activate() 
ro.globalenv["rdf"] = pandas2ri.py2ri(df) 

# Makes R recognise y as a factor. 
ro.r("""rdf$y <- as.factor(rdf$y)""") 

# Fits regression. 
formula = "y ~ X"  
ordlog = mass.polr(formula, data=base.as_symbol("rdf")) 
ro.globalenv["ordlog"] = ordlog 
print(base.summary(ordlog)) 

をこれまでのところ、私は主にsklearn.cross_validation.test_train_splitを使用して、私のモデルを比較し、sklearn.metrics.accuracy_score、番号を​​得てきた:序ロジスティックモデル(MASS.polr)をフィットさせるために、私は次のようにrpy2を通じてRとインターフェースするために持っていましたテストセット値を予測する際のトレーニングセットモデルの精度を表す0から1までの値を含む。

rpy2MASS.polrを使用してこのテストをどのように複製できますか?

答えて

2

rms.lrmを使用してモデルを再構成すると、最終的に問題が解決されました。関数(this exampleの後に解釈されます)を提供します。

関連する問題