RF

#!/usr/bin/evn python3
#-*- coding:UTF-8 -*-

# 加载包
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import tensorflow as tf
import numpy as np
import pandas as pd

import os

os.environ["TF_CPP_MIN_LOG_LEVEL"] = '3'

hparams = tf.contrib.tensor_forest.python.tensor_forest.ForestHParams(num_trees=3,
                                                                      max_nodes=100,
                                                                      num_classes=3,
                                                                      num_features=4)
classifier = tf.contrib.tensor_forest.client.random_forest.TensorForestEstimator(hparams)

df = pd.read_csv('data.csv', encoding='utf-8')
for i in range(200):
    # df.drop_duplicates(keep='first', inplace=True)  # 去重,只保留第一次出现的样本
    df = df.sample(frac=1.0)  # 全部打乱
    cut_idx = int(round(0.2 * df.shape[0]))
    df_test, df_train = df.iloc[:cut_idx], df.iloc[cut_idx:]
    test_data, test_label = df_test.iloc[:, :81], df_test.iloc[:, 81:]
    train_data, train_label = df_train.iloc[:, :81], df_train.iloc[:, 81:]
    classifier.fit(x=train_data, y=train_label.target, steps=100,batchsize=1000)
    accuracy_score = classifier.evaluate(x=test_data, y=test_label.target)['accuracy']
    print('Step: %d' % (i*100), 'Accuracy: {0:f}'.format(accuracy_score))

猜你喜欢

转载自blog.csdn.net/qq_31813549/article/details/79498371
RF