首先说降维和特征选择中过滤法、嵌入法、包装法的区别。这三种方法是选择原始数据中的某些对模型有效的特征,而降维是将之前的特征压缩成一个新的特征,这些新特征往往不可读,不能从表面看出含义。
一般流程是先探索数据,将特征矩阵和标签划为X和y,为了找出最佳降维维度,要不断的画图以确定最小范围,pca_line = PCA().fit(X)
使用pca_line.explained_variance_ratio_作为x轴,explained_variance_ratio_是PCA的可解释方差贡献率属性,查看降维后每个新特征向量所占的信息量占原始数据总信息量的百分比。y是此时x的explained_variance_ratio,x轴是降维后的特征个数。
通过不断的筛选细分,获得一个最佳的维度,然后使用算法并评估模型得分,即X_dr = PCA(最佳维度).fit_transform(X)
cross_val_score(RFC(n_estimators=100,random_state=0),X_dr,y,cv=5).mean()。KNeighborsClassifier作为一个计算复杂,耗时大的算法,在降低维度后的数据上也会缩小运算时间,我们通过改变KNN中的参数,查看在最佳维度下,哪个n值能获得最佳得分。
1 | score = [] |