ボストン住宅価格の予測を作成している途中です。
ランダムフォレストで学習して予測したpre_targetと実際の価格test_targetを散布図で取得したいです・
しかし下記コードでは
sns.pairplot(target_np)で
TypeError: 'data' must be pandas DataFrame object, not: <class 'numpy.ndarray'>
のエラーが出てしまいます。
type(target_np)は<class 'numpy.ndarray'>と表示されるのでどこで誤っているかわかりません。
よろしくお願いします。
python
1import numpy as np 2import pandas as pd 3import matplotlib.pyplot as plt 4import seaborn as sns 5sns.set() 6from sklearn import datasets 7from sklearn.ensemble import RandomForestRegressor as RFR 8from sklearn.model_selection import train_test_split 9 10#データをtestとtargetに分離 11boston = datasets.load_boston() 12train_data, test_data, train_target, test_target \ 13= train_test_split(boston.data, boston.target, test_size=0.2) 14 15# データフレーム化、このカラムは元データに紐づいている 16train_df = pd.DataFrame(train_data, columns=boston.feature_names) 17# 予測したい値(MEDV列を作成しそこに代入している?) 18train_df["MEDV"] = train_target 19 20 21rg = RFR(n_jobs=-1) # n_jobs=-1でコアすべてを使って並列に学習できる 22rg.fit(train_data, train_target) # 訓練 23 24#訓練されたrgに対しtest_dataを代入しMEDVを予想させる 25pre_target = rg.predict(test_data) 26 27target_np = np.array([pre_target,test_target]) 28sns.pairplot(target_np) 29plt.show() 30
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。