数据处理的统计学习(scikit-learn教程)
高维灾难: 如果特征数是P,你就需要n 1/d^p个点。也就是说,如果我们在一维度情况下需要10个点,在P维度情况下需要10^p个点。当P变大的时候,为获得一个好的预测函数需要的点数将急剧增长。 这被称为高维灾难(指数级增长),也是机器学习领域的一个核心问题。 (2)线性模型:从回归到稀疏性Diabets数据集(糖尿病数据集) 糖尿病数据集包含442个患者的10个生理特征(年龄,性别、体重、血压)和一年以后疾病级数指标。 diabetes = datasets.load_diabetes() 线性模型:y = βX+b ? ?X:数据 ? ?y:目标变量 ? ?β:回归系数 ? ?b:观测噪声(bias,偏差) from sklearn import linear_model regr = linear_model.LinearRegression() regr.fit(diabetes_X_train,diabetes_y_train)print(regr.coef_) 收缩(Shrinkage): X = np.c_[ .5,1].T y = [.5,1] test = np.c_[ 0,2].T regr = linear_model.LinearRegression()import pylab as pl pl.figure() np.random.seed(0)for _ in range(6): ? this_X = .1*np.random.normal(size=(2,1)) + X ? regr.fit(this_X,y) ? pl.plot(test,regr.predict(test)) ? pl.scatter(this_X,y,s=3) ? 高维统计学习的一个解决方案是将回归系数缩小到0:观测数据中随机选择的两个数据集近似不相关。这被称为岭回归(Ridge Regression): regr = linear_model.Ridge(alpha=.1) pl.figure() np.random.seed(0)for _ in range(6): ? this_X = .1*np.random.normal(size=(2,s=3) 这是一个偏差/方差(bias/variance)的权衡:岭α参数越大,偏差(bias)越大,方差(variance)越小 我们可以选择α以最小化排除错误,这里使用糖尿病数据集而不是人为制造的数据: alphas = np.logspace(-4,-1,6)from __future__ import print_functionprint([regr.set_params(alpha=alpha ? ? ? ? ? ?).fit(diabetes_X_train,diabetes_y_train,? ? ? ? ? ?).score(diabetes_X_test,diabetes_y_test) for alpha in alphas]) 【注意】扑捉拟合参数的噪声使得模型不能推广到新的数据被称为过拟合。岭回归造成的偏差被称为正则化(归整化,regularization) 稀疏性: 【注意】整个糖尿病数据包含11维数据( 我们可以看到,尽管特征2在整个模型中占据很大的系数,但是和特征1相比,对结果y造成的影响很小。 为了提升问题的状况(考虑到高维灾难),只选择信息含量较大的(对结果y造成的影响较大的)的特征,不选择信息含量较小的特征会很有趣,如把特征2的系数调到0.岭回归将会减少信息含量较小的系数的值,而不是把它们设置为0.另一种抑制措施——Lasso(最小绝对收缩和选择算子)可以使得一些参数为0.这些方法被称作稀疏方法。系数操作可以看作是奥卡姆的剃刀:模型越简单越好。 regr = linear_model.Lasso() scores = [regr.set_params(alpha=alpha ? ? ? ? ? ?).fit(diabetes_X_train,diabetes_y_train ? ? ? ? ? ?).score(diabetes_X_test,diabetes_y_test) ? ? ? 针对相同问题的不同算法:
logistic = linear_model.LogisticRegression(C=1e5) logistic.fit(iris_X_train,iris_y_train) 这就是有名的logistic回归。
通过Logistic回归进行收缩和稀疏: 在LogisticRegression对象中C参数控制着正则化的数量:C越大,正则化数目越少。penalty= "12" 提供收缩(非稀疏化系数),penalty="11"提供稀疏化。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |