前提・実現したいこと
kaggleのHousepricesを利用しています
reshapeを利用するということは検索で分かったのですが
自分のコードでのあてはめ方が分からないです。
Python学習して数週間の初心者のため、
分かりやすく教えていただけたら幸いです。
重回帰分析を利用しようとしています。
エラーメッセージ ValueError: Expected 2D array, got 1D array instead:
該当のソースコード
# This Python 3 environment comes with many helpful analytics libraries installed # It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python # For example, here's several helpful packages to load import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv) # Input data files are available in the read-only "../input/" directory # For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory import os for dirname, _, filenames in os.walk('/kaggle/input'): for filename in filenames: print(os.path.join(dirname, filename)) # You can write up to 5GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using "Save & Run All" # You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session
#データ加工・処理・分析ライブラリ import numpy as np import numpy.random as random import scipy as sp import pandas as pd #可視化ライブラリ import matplotlib.pyplot as plt import matplotlib as mp1 import seaborn as sns %matplotlib inline #機械学習ライブラリ import sklearn import sklearn.preprocessing as pp import sklearn.model_selection as ms import sklearn.metrics as metrics import json from sklearn import linear_model from matplotlib import pyplot as plt from sklearn.metrics import mean_squared_error from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from sklearn.pipeline import make_pipeline from sklearn.linear_model import ( LinearRegression, Ridge, Lasso ) #少数第3位まで表示 %precision 3
#データの読み込み train = pd.read_csv('../input/house-prices-advanced-regression-techniques/train.csv') #テストデータ test = pd.read_csv('../input/house-prices-advanced-regression-techniques/test.csv') #訓練データ alldata = pd.concat([train,test],axis=0).reset_index(drop=True) print("Train data shape:",train.shape) print("Test data shape:",test.shape)
#物件の広さを合計した変数を作成 train["TotalSF"] = train["GrLivArea"] + train["GarageArea"] + train["TotalBsmtSF"] + train["1stFlrSF"] + train["2ndFlrSF"] test["TotalSF"] = test["GrLivArea"] + test["GarageArea"] + test["TotalBsmtSF"]+test["1stFlrSF"] + test["2ndFlrSF"] #今回使うSalePriceとTotalSFのみのデータに置き換える train = train[["SalePrice","GrLivArea","GarageArea","TotalBsmtSF","1stFlrSF","2ndFlrSF"]]
#データ分割(訓練データとテストデータ)のためのインポート from sklearn.model_selection import train_test_split #重回帰のモデル構築のためのインポート from sklearn.linear_model import LinearRegression #目的変数にSalePriceを指定、説明変数にそれ以外を指定 X = train.drop("SalePrice",axis=1) y = train["SalePrice"] #訓練データとテストデータに分ける train_X,test_X,train_y,test_y = train_test_split(X,y,test_size=0.5,random_state=0) train_X.head()
#重回帰クラスの初期化と学習 model = LinearRegression() model.fit(train_y,train_X) #決定係数を表示 print('決定係数(train):{:.3f}'.format(model.score(train_x,train_y))) print('決定係数(test):{:.3f}'.format(model.score(test_x,test_y))) #回帰係数と切片を表示 print('\n回帰係数\n{}'.format(pd.Series(model.coef_,index=X.columns))) print('切片:{:.3f}'.format(model.intercept_))
試したこと
reshapeを試しましたが、NumPyへの変換を行わなければならないというような
エラーが出てしまい、
さらに訂正を加えている間に、よく分からなくなりました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/26 00:06