train_test_split() got an unexpected keyword argument 'test'
如何改正
根据参考资料和错误提示信息,可以发现代码中train_test_split()函数的参数中多了一个'test',但该参数并不在train_test_split()函数的允许的参数列表中,因此需要将代码中的'test'参数修改为正确的参数名'test_size'。
修改后的代码如下:
from sklearn.model_selection import train_test_split
train_set, test_set=train_test_split(housing, test_size=0.2, random_state=42)
train_set.info()
test_set.info()
housing['income_cat']=pd.cut(housing['median_income'],bins=[0.,1.5,3.0,4.5,6.,np.inf],labels=[1,2,3,4,5])
housing['income_cat'].hist()
%matplotlib inline
import matplotlib.pyplot as plt
housing['income_cat'].hist()
plt.show()
from sklearn.model_selection import StratifiedShuffleSplit
split=StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)
for train_index, test_index in split.split(housing, housing['income_cat']):
strat_train_set=housing.loc[train_index]
strat_test_set=housing.loc[test_index]
strat_test_set['income_cat'].value_counts()/len(strat_test_set)
for set_ in (strat_train_test, strat_test_set):
set_.drop('income_cat', axis=1, inplace=True)
其中将代码中'test'修改为'test_size'即可解决问题。