sklearnライブラリからfit_transformで1次元配列を転嫁することはできません(スプリットテスト)

ジャガイモの学生:

Iはmost_frequent戦略に簡単imputer有する形状(14599)と1次元アレイを転嫁しようとしているが、それは、それが2Dアレイは、iが既に(-1,1)と整形しようとした見通し(1、-1)が、そのエラーとValueError :私はこの問題を解決する習慣再形成するので、これを転嫁することができますどのような形状(14599)に形状(14599,1)からの入力配列を放送することができませんでしたか?それがエラーをスローなぜ私は理解しません。私はすでにそれを聞いてしようとしたDSのstackexchangeと誰かが答えたたぶん私はわからないんだけど、テストして、その後、X、Y /電車のパラメータにそれを渡すことは、パンダシリーズだが、私はnumpyの配列中のx、yのを作りました

##libraries
import pandas as pd
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
from sklearn.impute import SimpleImputer
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder

##codes
plt.close('all')
avo_sales = pd.read_csv('avocados.csv')
avo_sales.rename(columns = {'4046':'small PLU sold',
                            '4225':'large PLU sold',
                            '4770':'xlarge PLU sold'},
                 inplace= True)

avo_sales.columns = avo_sales.columns.str.replace(' ','')

plt.scatter(avo_sales.Date,avo_sales.TotalBags)

x = np.array(avo_sales.drop(['TotalBags','Unnamed:0','year','region','Date'],1))
y = np.array(avo_sales.TotalBags)

X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)

impC = SimpleImputer(strategy='most_frequent')
X_train[:,8] = impC.fit_transform(X_train[:,8].reshape(-1,1)) <-- error here

imp = SimpleImputer(strategy='median')
X_train[:,1:8] = imp.fit_transform(X_train[:,1:8])

le = LabelEncoder()
X_train[:,8] = le.fit_transform(X_train[:,8])
セルゲイBushmanov:

行を変更します。

X_train[:,8] = impC.fit_transform(X_train[:,8].reshape(-1,1))

X_train[:,8] = impC.fit_transform(X_train[:,8].reshape(-1,1)).ravel()

そして、あなたのエラーが表示されなくなります。

帰属の値は、あなたのコードに問題の原因をバック割り当てることです。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=18538&siteId=1