# 导入模块
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.datasets import load_iris
iris=load_iris()
gbc=GradientBoostingClassifier()
gbc.fit(iris.data,iris.target)
gbc.predict(iris.data)
输出每次迭代的预测概率值
特征重要性:可见后两个特征比较重要,可以进行取舍,达到降维的目的
EM算法
%matplotlib inline
import numpy as np
from scipy.stats import multivariate_normal
from sklearn.mixture import GaussianMixture
from mpl_toolkits.mplot3d import Axes3D
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams['font.sans-serif']=[u'SimHei']
mpl.rcParams['axes.unicode_minus']=False
# 随机生成数据
mul=(0,0,0)
cov=np.identity(3)
data1=np.random.multivariate_normal(mul,cov,400)
mul=(2,2,1)
cov=np.identity(3)
data2=np.random.multivariate_normal(mul,cov,100)
data=np.vstack((data1,data2))
#参数赋予初始值
mu1=data.min(axis=0)
mu2=data.max(axis=0)
sigmal=np.identity(3)
sigma2=np.identity(3)
pi=0.5
#em算法估计gmm参数
for i in range(num_iter):
norm1=multivariate_normal(mu1,sigma1)
norm2=multivariate_norma1(mu2,sigma2)
tau1=pi*norm1.pdf(data)
tau2=(1-pi)*norm2.pdf(data)
gamma=tau/(tau1+tau2)