import csv
 from sklearn.ensemble import RandomForestRegressor
 from housing import plot_feature_importances
 # 读取csv
 def load_dataset(filename):
     file_reader = csv.reader(open(filename, 'rb'), delimiter=',')
     X, y = [], []
     for row in file_reader:
         X.append(row[2:13])
         y.append(row[-1])
     # 提取特征名称
     feature_names = np.array(X[0])
     # 将第一行特征名称移除, 仅保留数值
     return np.array(X[1:]).astype(np.float32), np.array(y[1:]).astype(np.float32),feature_namesX, y, feature_names = load_dataset(sys.argv[1])
 X, y = shuffle(X, y, random_state=7)num_training = int(0.9 * len(X))
 X_train, y_train = X[:num_training], y[:num_training]
 X_test, y_test = X[num_training:], y[num_training:]rf_regressor = RandomForestRegressor(n_estimators=1000, max_depth=10,min_samples_split=1)
 rf_regressor.fit(X_train, y_train)y_pred = rf_regressor.predict(X_test)
 mse = mean_squared_error(y_test, y_pred)
 evs = explained_variance_score(y_test, y_pred)
 print("\n#### Random Forest regressor performance ####")
 print("Mean squared error =", round(mse, 2))
 print("Explained variance score =", round(evs, 2))plot_feature_importances(rf_regressor.feature_importances_, 'Random Forest regressor', feature_names)