随机森林 具体参考https://blog.youkuaiyun.com/y0367/article/details/51501780
及https://baijiahao.baidu.com/s?id=1612329431904493042&wfr=spider&for=pc
学习随机森林和k-means算法代码时遇到了random_state参数,fit()函数,不懂是用来干什么的,有什么作用
1、random_state
学习k-means算法时查看代码发现有random_state参数代码如下,不知道其代表什么,
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=1500,n_features=2,centers=3,cluster_std=0.5,random_state =0)#X为样本特征,Y为样本簇类别, 共1500个样本,每个样本2个特征,三个簇,簇方差为0.5
plt.scatter(X[:, 0],X[:, 1],marker='o')
plt.show()
查阅该博主文章终于懂了https://blog.youkuaiyun.com/Tony_Stark_Wang/article/details/80407923
很多人都把random_state解释为随机数种子。是不是很懵逼?什么是随机数种子?
我也不知道什么是随机数种子。但是,随机数种子是为了保证每次随机的结果都是一样的
Example:sklarn可以随机分割训练集和测试集(交叉验证),只需要在代码中引入model_selection.train_test_split就可以了
代码:
-
from sklearn import model_selection
-
x_train, x_test, y_train, y_test = model_selection.train_test_split(x, y, test_size=0.2, random_state=0)
这里的random_state就是为了保证程序每次运行都分割一样的训练集合测试集。否则,同样的算法模型在不同的训练集和测试集上的效果不一样。
当你用sklearn分割完测试集和训练集,确定模型和促初始参数以后,你会发现程序每运行一次,都会得到不同的准确率,无法调参。这个时候就是因为没有加random_state。加上以后就可以调参了。
2、clt.fit()
fit()可以说是调用的通用方法。fit(X),表示用数据X来训练某种模型。 函数返回值一般为调用fit方法的对象本身。fit(X,y=None)为无监督学习算法,fit(X,Y)为监督学习算法