• 大小:
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2023-06-19
  • 语言: Python
  • 标签: 机器学习  python  

资源简介

python机器学习经典实例【美 Prateek Joshi】修正python3.x版

资源截图

代码片段和文件信息

import sys
import csv
from sklearn.ensemble import RandomForestRegressor
import numpy as np
from sklearn.utils import shuffle
from sklearn.metrics import mean_squared_error explained_variance_score
import matplotlib.pyplot as plt

def plot_feature_importances(feature_importancestitlefeature_names):
    #重要性值标准化
    feature_importances=100.0*(feature_importances/max(feature_importances))
    #得分从高到低排序
    index_sorted=np.flipud(np.argsort(feature_importances))
    #让X坐标轴上的标签居中显示
    pos=np.arange(index_sorted.shape[0])+0.5

    #画图
    plt.figure()
    plt.bar(posfeature_importances[index_sorted]align=‘center‘)
    plt.xticks(posfeature_names[index_sorted])
    plt.ylabel(‘Relative Importance‘)
    plt.title(title)
    plt.show()


def load_dataset(filename):
    file_reader=csv.reader(open(filename‘r‘)delimiter=‘‘)
    xy=[][]
    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_names


#读取数据,打乱顺序
xyfeature_names=load_dataset(‘bike_day.csv‘)
xy=shuffle(xyrandom_state=7)

num_training=int(0.9*len(x))

x_trainy_train=x[:num_training]y[:num_training]
x_testy_test=x[num_training:]y[num_training:]

#决策树回归模型进行拟合
rf_regressor=RandomForestRegressor(n_estimators=1000max_depth=10min_samples_split=0.001)
rf_regressor.fit(x_trainy_train)


#评价随机森林回归器效果展示
y_pred=rf_regressor.predict(x_test)
mse=mean_squared_error(y_testy_pred)
evs=explained_variance_score(y_testy_pred)
print(‘\n### Random Forest regressor performance ###‘)
print(‘Mean squared error =‘round(mse2))
print(‘Explained variance score=‘round(evs2))

#画图
plot_feature_importances(rf_regressor.feature_importances_‘Random Forest regressor‘feature_names)


评论

共有 条评论