Python3.5.1 报错 ImportError: cannot import name 'Type'
报错信息:ImportError: cannot import name 'Type'
解决方法:
① 降低tornado的版本到5.1.1
② 降低scipy的版本到1.2.1
pip install scipy==1.2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/
两种方法都试一下,应该就可以解决问题了,仅限Python3.5.1
参照方式2解决问题:
Python3.5.1 scikit-learn 0.22报错 ImportError: cannot import name 'Imputer'
解决方法:换成使用SimpleImputer: from sklearn.impute import SimpleImputer
[root@study 1_preprocess]# cat 6_Imputer.py
#coding: UTF-8
# 存在缺失值:缺失值需要补充。
import numpy as np
from sklearn.datasets import load_boston
from sklearn.ensemble import RandomForestRegressor
from sklearn.pipeline import Pipeline
#from sklearn.preprocessing import Imputer
from sklearn.model_selection import cross_val_score
from sklearn.impute import SimpleImputer
rng = np.random.RandomState(0)
dataset = load_boston()
X_full, y_full = dataset.data, dataset.target
n_samples = X_full.shape[0]
n_features = X_full.shape[1]
# Estimate the score on the entire dataset, with no missing values
estimator = RandomForestRegressor(random_state=0, n_estimators=100)
score = cross_val_score(estimator, X_full, y_full).mean()
print("Score with the entire dataset = %.2f" % score)
# Add missing values in 75% of the lines
missing_rate = 0.75
n_missing_samples = int(np.floor(n_samples * missing_rate))
missing_samples = np.hstack((np.zeros(n_samples - n_missing_samples,
dtype=np.bool),
np.ones(n_missing_samples,
dtype=np.bool)))
rng.shuffle(missing_samples)
missing_features = rng.randint(0, n_features, n_missing_samples)
# Estimate the score without the lines containing missing values
X_filtered = X_full[~missing_samples, :]
y_filtered = y_full[~missing_samples]
estimator = RandomForestRegressor(random_state=0, n_estimators=100)
score = cross_val_score(estimator, X_filtered, y_filtered).mean()
print("Score without the samples containing missing values = %.2f" % score)
# Estimate the score after imputation of the missing values
X_missing = X_full.copy()
X_missing[np.where(missing_samples)[0], missing_features] = 0
y_missing = y_full.copy()
estimator = Pipeline([("imputer",SimpleImputer(missing_values=0,
strategy="mean")),
("forest", RandomForestRegressor(random_state=0,
n_estimators=100))])
score = cross_val_score(estimator, X_missing, y_missing).mean()
print("Score after imputation of the missing values = %.2f" % score)