index0 = numerical_corr.sort_values(ascending=False).index 36 print(train_data_scaler[index0].corr('spearman')) 37 38 new_numerical=['V0', 'V2', 'V3', 'V4', 'V5', 'V6', 'V10','V11', 39 'V13', 'V15', 'V16', 'V18', 'V19', 'V20', 'V22','V24','V30', 'V31', 'V37'] 40 X=np.matrix(train_data_scaler[new_numerical]) 41 VIF_list=[variance_inflation_factor(X, i) for i in range(X.shape[1])] 42 VIF_list 43 44 45 pca = PCA(n_components=0.9) 46 new_train_pca_90 = pca.fit_transform(train_data_scaler.iloc[:,0:-1]) 47 new_test_pca_90 = pca.transform(test_data_scaler) 48 new_train_pca_90 = pd.DataFrame(new_train_pca_90) 49 new_test_pca_90 = pd.DataFrame(new_test_pca_90) 50 new_train_pca_90['target'] = train_data_scaler['target'] 51 new_train_pca_90.describe() 52 53 pca = PCA(n_components=0.95) 54 new_train_pca_16 = pca.fit_transform(train_data_scaler.iloc[:,0:-1]) 55 new_test_pca_16 = pca.transform(test_data_scaler) 56 new_train_pca_16 = pd.DataFrame(new_train_pca_16) 57 new_test_pca_16 = pd.DataFrame(new_test_pca_16) 58 new_train_pca_16['target'] = train_data_scaler['target'] 59 new_train_pca_16.describe() 60 61 from sklearn.ensemble import GradientBoostingRegressor 62 63 from sklearn.model_selection import learning_curve 64 from sklearn.model_selection import ShuffleSplit 65 66 new_train_pca_16 = new_train_pca_16.fillna(0) 67 train = new_train_pca_16[new_test_pca_16.columns] 68 target = new_train_pca_16['target'] 69 70 train_data,test_data,train_target,test_target=train_test_split(train,target,test_size=0.2,random_state=0) 71 72 clf = LinearRegression() 73 clf.fit(train_data, train_target) 74 score = mean_squared_error(test_target, clf.predict(test_data)) 75 print("LinearRegression: ", score) 76 77 train_score = [] 78 test_score = []解释每一句代码的意思
时间: 2023-12-24 18:26:25 浏览: 86
这段代码是一段Python程序,主要是进行数据预处理和建模的操作。下面是每一句代码的意思:
- 第36行:对数据进行排序,返回排序后的索引。
- 第38行:指定一些列作为新的数值特征。
- 第40行:将选定列的数据转化为矩阵。
- 第41行:计算选定特征的方差膨胀因子并返回列表。
- 第45行:使用PCA进行降维,保留90%的方差。
- 第46-49行:将PCA降维后的训练数据和测试数据转化为DataFrame格式,并将目标变量添加到训练集中。
- 第53行:使用PCA进行降维,保留95%的方差。
- 第54-59行:将PCA降维后的训练数据和测试数据转化为DataFrame格式,并将目标变量添加到训练集中。
- 第61行:导入GradientBoostingRegressor模型。
- 第63-64行:导入学习曲线和ShuffleSplit。
- 第66行:使用0填充缺失值。
- 第67行:将测试集PCA降维后的列与训练数据集进行匹配。
- 第68行:将目标变量与训练数据集进行匹配。
- 第70行:将数据集划分为训练集和测试集。
- 第72行:使用线性回归模型进行拟合。
- 第73行:拟合模型。
- 第74行:使用均方误差对测试集进行评估。
- 第77-78行:初始化训练和测试得分。
阅读全文