【发布时间】:2020-10-01 16:35:59
【问题描述】:
我正在使用 sklearn 和 python 构建隔离林,并遇到错误“ValueError:模型的特征数必须与输入匹配。模型 n_features 为 24,输入 n_features 为 1。我正在尝试从各种尺寸特征中预测“页面”。我正在使用的实际数据集有 300 行和 14 列。第一个和第二个无关紧要,然后有 10 个“大小”标签,然后是“页面”列,所以我不确定为什么它说输入是 1。我在下面附上了一些代码以及数据的样子,谢谢你!
X = df.iloc[:, 2:12].values
y = df['pages']
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=0)
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
model = IsolationForest(n_estimators = 100, max_samples = 'auto', contamination = 'auto')
model.fit(df[['pages']])
df['anomaly']=model.fit_predict(df[['size2','size3','size4', 'size5','size6','size7','size8','size9','size10','size11']])
df['anomaly']= model.predict(df[['pages']])
print(model.predict(X_test))
print(df.head(10))
anomaly = df.loc[df['anomaly']==-1]
anomaly_index = list(anomaly.index)
print(anomaly)
【问题讨论】: