cl.fe3.xyz index.php,2_FE_Diabetes.ipynb

{

"cells": [

{

"cell_type": "markdown",

"metadata": {},

"source": [

"# Diabetes Data Set特征工程"

]

},

{

"cell_type": "markdown",

"metadata": {},

"source": [

"## 导入必要的工具包"

]

},

{

"cell_type": "code",

"execution_count": 1,

"metadata": {},

"outputs": [],

"source": [

"import numpy as np\n",

"import pandas as pd"

]

},

{

"cell_type": "code",

"execution_count": 2,

"metadata": {},

"outputs": [

{

"data": {

"text/html": [

"

\n",

"

" .dataframe tbody tr th:only-of-type {\n",

" vertical-align: middle;\n",

" }\n",

"\n",

" .dataframe tbody tr th {\n",

" vertical-align: top;\n",

" }\n",

"\n",

" .dataframe thead th {\n",

" text-align: right;\n",

" }\n",

"\n",

"

" \n",

"

\n",

"

\n",

"

pregnants\n",

"

Plasma_glucose_concentration\n",

"

blood_pressure\n",

"

Triceps_skin_fold_thickness\n",

"

serum_insulin\n",

"

BMI\n",

"

Diabetes_pedigree_function\n",

"

Age\n",

"

Target\n",

"

\n",

"

\n",

"

\n",

"

\n",

"

0\n",

"

6\n",

"

148\n",

"

72\n",

"

35\n",

"

0\n",

"

33.6\n",

"

0.627\n",

"

50\n",

"

1\n",

"

\n",

"

\n",

"

1\n",

"

1\n",

"

85\n",

"

66\n",

"

29\n",

"

0\n",

"

26.6\n",

"

0.351\n",

"

31\n",

"

0\n",

"

\n",

"

\n",

"

2\n",

"

8\n",

"

183\n",

"

64\n",

"

0\n",

"

0\n",

"

23.3\n",

"

0.672\n",

"

32\n",

"

1\n",

"

\n",

"

\n",

"

3\n",

"

1\n",

"

89\n",

"

66\n",

"

23\n",

"

94\n",

"

28.1\n",

"

0.167\n",

"

21\n",

"

0\n",

"

\n",

"

\n",

"

4\n",

"

0\n",

"

137\n",

"

40\n",

"

35\n",

"

168\n",

"

43.1\n",

"

2.288\n",

"

33\n",

"

1\n",

"

\n",

"

\n",

"

\n",

"

"

],

"text/plain": [

" pregnants Plasma_glucose_concentration blood_pressure \\\n",

"0 6 148 72 \n",

"1 1 85 66 \n",

"2 8 183 64 \n",

"3 1 89 66 \n",

"4 0 137 40 \n",

"\n",

" Triceps_skin_fold_thickness serum_insulin BMI \\\n",

"0 35 0 33.6 \n",

"1 29 0 26.6 \n",

"2 0 0 23.3 \n",

"3 23 94 28.1 \n",

"4 35 168 43.1 \n",

"\n",

" Diabetes_pedigree_function Age Target \n",

"0 0.627 50 1 \n",

"1 0.351 31 0 \n",

"2 0.672 32 1 \n",

"3 0.167 21 0 \n",

"4 2.288 33 1 "

]

},

"execution_count": 2,

"metadata": {},

"output_type": "execute_result"

}

],

"source": [

"#读入数据\n",

"diabetes = pd.read_csv('pima-indians-diabetes.csv')\n",

"diabetes.head()"

]

},

{

"cell_type": "code",

"execution_count": 3,

"metadata": {},

"outputs": [

{

"name": "stdout",

"output_type": "stream",

"text": [

"\n",

"RangeIndex: 768 entries, 0 to 767\n",

"Data columns (total 9 columns):\n",

"pregnants 768 non-null int64\n",

"Plasma_glucose_concentration 768 non-null int64\n",

"blood_pressure 768 non-null int64\n",

"Triceps_skin_fold_thickness 768 non-null int64\n",

"serum_insulin 768 non-null int64\n",

"BMI 768 non-null float64\n",

"Diabetes_pedigree_function 768 non-null float64\n",

"Age 768 non-null int64\n",

"Target 768 non-null int64\n",

"dtypes: float64(2), int64(7)\n",

"memory usage: 54.1 KB\n"

]

}

],

"source": [

"diabetes.info()"

]

},

{

"cell_type": "markdown",

"metadata": {},

"source": [

"表面上看数据没有缺失值,但实际上肯定有缺失值,只是被标记为0了。比如BMI和舒张压两列中的0作为指标数值来说毫无意义。"

]

},

{

"cell_type": "code",

"execution_count": 4,

"metadata": {},

"outputs": [

{

"data": {

"text/html": [

"

\n",

"

" .dataframe tbody tr th:only-of-type {\n",

" vertical-align: middle;\n",

" }\n",

"\n",

" .dataframe tbody tr th {\n",

" vertical-align: top;\n",

" }\n",

"\n",

" .dataframe thead th {\n",

" text-align: right;\n",

" }\n",

"\n",

"

" \n",

"

\n",

"

\n",

"

pregnants\n",

"

Plasma_glucose_concentration\n",

"

blood_pressure\n",

"

Triceps_skin_fold_thickness\n",

"

serum_insulin\n",

"

BMI\n",

"

Diabetes_pedigree_function\n",

"

Age\n",

"

Target\n",

"

\n",

"

\n",

"

\n",

"

\n",

"

count\n",

"

768.000000\n",

"

768.000000\n",

"

768.000000\n",

"

768.000000\n",

"

768.000000\n",

"

768.000000\n",

"

768.000000\n",

"

768.000000\n",

"

768.000000\n",

"

\n",

"

\n",

"

mean\n",

"

3.845052\n",

"

120.894531\n",

"

69.105469\n",

"

20.536458\n",

"

79.799479\n",

"

31.992578\n",

"

0.471876\n",

"

33.240885\n",

"

0.348958\n",

"

\n",

"

\n",

"

std\n",

"

3.369578\n",

"

31.972618\n",

"

19.355807\n",

"

15.952218\n",

"

115.244002\n",

"

7.884160\n",

"

0.331329\n",

"

11.760232\n",

"

0.476951\n",

"

\n",

"

\n",

"

min\n",

"

0.000000\n",

"

0.000000\n",

"

0.000000\n",

"

0.000000\n",

"

0.000000\n",

"

0.000000\n",

"

0.078000\n",

"

21.000000\n",

"

0.000000\n",

"

\n",

"

\n",

"

25%\n",

"

1.000000\n",

"

99.000000\n",

"

62.000000\n",

"

0.000000\n",

"

0.000000\n",

"

27.300000\n",

"

0.243750\n",

"

24.000000\n",

"

0.000000\n",

"

\n",

"

\n",

"

50%\n",

"

3.000000\n",

"

117.000000\n",

"

72.000000\n",

"

23.000000\n",

"

30.500000\n",

"

32.000000\n",

"

0.372500\n",

"

29.000000\n",

"

0.000000\n",

"

\n",

"

\n",

"

75%\n",

"

6.000000\n",

"

140.250000\n",

"

80.000000\n",

"

32.000000\n",

"

127.250000\n",

"

36.600000\n",

"

0.626250\n",

"

41.000000\n",

"

1.000000\n",

"

\n",

"

\n",

"

max\n",

"

17.000000\n",

"

199.000000\n",

"

122.000000\n",

"

99.000000\n",

"

846.000000\n",

"

67.100000\n",

"

2.420000\n",

"

81.000000\n",

"

1.000000\n",

"

\n",

"

\n",

"

\n",

"

"

],

"text/plain": [

" pregnants Plasma_glucose_concentration blood_pressure \\\n",

"count 768.000000 768.000000 768.000000 \n",

"mean 3.845052 120.894531 69.105469 \n",

"std 3.369578 31.972618 19.355807 \n",

"min 0.000000 0.000000 0.000000 \n",

"25% 1.000000 99.000000 62.000000 \n",

"50% 3.000000 117.000000 72.000000 \n",

"75% 6.000000 140.250000 80.000000 \n",

"max 17.000000 199.000000 122.000000 \n",

"\n",

" Triceps_skin_fold_thickness serum_insulin BMI \\\n",

"count 768.000000 768.000000 768.000000 \n",

"mean 20.536458 79.799479 31.992578 \n",

"std 15.952218 115.244002 7.884160 \n",

"min 0.000000 0.000000 0.000000 \n",

"25% 0.000000 0.000000 27.300000 \n",

"50% 23.000000 30.500000 32.000000 \n",

"75% 32.000000 127.250000 36.600000 \n",

"max 99.000000 846.000000 67.100000 \n",

"\n",

" Diabetes_pedigree_function Age Target \n",

"count 768.000000 768.000000 768.000000 \n",

"mean 0.471876 33.240885 0.348958 \n",

"std 0.331329 11.760232 0.476951 \n",

"min 0.078000 21.000000 0.000000 \n",

"25% 0.243750 24.000000 0.000000 \n",

"50% 0.372500 29.000000 0.000000 \n",

"75% 0.626250 41.000000 1.000000 \n",

"max 2.420000 81.000000 1.000000 "

]

},

"execution_count": 4,

"metadata": {},

"output_type": "execute_result"

}

],

"source": [

"diabetes.describe()"

]

},

{

"cell_type": "markdown",

"metadata": {},

"source": [

"从结果中我们可以看到很多列的最小值为0,而在一些特定列代表的变量中,0值并没有意义,这就表名该值无效或为缺失值。\n",

"\n",

"具体来说,下列变量的最小值为0时数据无意义: 1、血浆葡萄糖浓度 2、舒张压 3、肱三头肌皮褶厚度 4、餐后血清胰岛素 5、体重指数\n",

"\n",

"在Pandas的DataFrame中,通过replace()函数可以很方便的将我们感兴趣的数据子集的值标记为NaN。\n",

"\n",

"标记完缺失值之后,可以利用isnull()函数将数据集中所有的NaN值标记为True,然后就可以得到每一列中缺失值的数量了。"

]

},

{

"cell_type": "markdown",

"metadata": {},

"source": [

"## 分开特征和标签"

]

},

{

"cell_type": "code",

"execution_count": 5,

"metadata": {},

"outputs": [],

"source": [

"#标签\n",

"y_diabetes = diabetes['Target']\n",

"\n",

"X_diabetes = diabetes.drop(['Target'], axis = 1)\n",

"#保存特征名字\n",

"columns_org = X_diabetes.columns"

]

},

{

"cell_type": "markdown",

"metadata": {},

"source": [

"## 1.feat编码:log(x+1)\n",

"原始特征feat_x看起来像计数特征,取log运算更接近人对数字的敏感度,更适合线性模型。 同时也可以降低长维分布中大数值的影响,减弱长维分布的长尾性。"

]

},

{

"cell_type": "code",

"execution_count": 6,

"metadata": {

"scrolled": true

},

"outputs": [

{

"data": {

"text/html": [

"

\n",

"

" .dataframe tbody tr th:only-of-type {\n",

" vertical-align: middle;\n",

" }\n",

"\n",

" .dataframe tbody tr th {\n",

" vertical-align: top;\n",

" }\n",

"\n",

" .dataframe thead th {\n",

" text-align: right;\n",

" }\n",

"\n",

"

" \n",

"

\n",

"

\n",

"

pregnants_log\n",

"

Plasma_glucose_concentration_log\n",

"

blood_pressure_log\n",

"

Triceps_skin_fold_thickness_log\n",

"

serum_insulin_log\n",

"

BMI_log\n",

"

Diabetes_pedigree_function_log\n",

"

Age_log\n",

"

\n",

"

\n",

"

\n",

"

\n",

"

0\n",

"

1.945910\n",

"

5.003946\n",

"

4.290459\n",

"

3.583519\n",

"

0.000000\n",

"

3.543854\n",

"

0.486738\n",

"

3.931826\n",

"

\n",

"

\n",

"

1\n",

"

0.693147\n",

"

4.454347\n",

"

4.204693\n",

"

3.401197\n",

"

0.000000\n",

"

3.317816\n",

"

0.300845\n",

"

3.465736\n",

"

\n",

"

\n",

"

2\n",

"

2.197225\n",

"

5.214936\n",

"

4.174387\n",

"

0.000000\n",

"

0.000000\n",

"

3.190476\n",

"

0.514021\n",

"

3.496508\n",

"

\n",

"

\n",

"

3\n",

"

0.693147\n",

"

4.499810\n",

"

4.204693\n",

"

3.178054\n",

"

4.553877\n",

"

3.370738\n",

"

0.154436\n",

"

3.091042\n",

"

\n",

"

\n",

"

4\n",

"

0.000000\n",

"

4.927254\n",

"

3.713572\n",

"

3.583519\n",

"

5.129899\n",

"

3.786460\n",

"

1.190279\n",

"

3.526361\n",

"

\n",

"

\n",

"

\n",

"

"

],

"text/plain": [

" pregnants_log Plasma_glucose_concentration_log blood_pressure_log \\\n",

"0 1.945910 5.003946 4.290459 \n",

"1 0.693147 4.454347 4.204693 \n",

"2 2.197225 5.214936 4.174387 \n",

"3 0.693147 4.499810 4.204693 \n",

"4 0.000000 4.927254 3.713572 \n",

"\n",

" Triceps_skin_fold_thickness_log serum_insulin_log BMI_log \\\n",

"0 3.583519 0.000000 3.543854 \n",

"1 3.401197 0.000000 3.317816 \n",

"2 0.000000 0.000000 3.190476 \n",

"3 3.178054 4.553877 3.370738 \n",

"4 3.583519 5.129899 3.786460 \n",

"\n",

" Diabetes_pedigree_function_log Age_log \n",

"0 0.486738 3.931826 \n",

"1 0.300845 3.465736 \n",

"2 0.514021 3.496508 \n",

"3 0.154436 3.091042 \n",

"4 1.190279 3.526361 "

]

},

"execution_count": 6,

"metadata": {},

"output_type": "execute_result"

}

],

"source": [

"X_log = np.log1p(X_diabetes)\n",

"\n",

"#重新组成DataFrame\n",

"feat_names = columns_org + '_log'\n",

"X_log = pd.DataFrame(columns = feat_names, data = X_log.values)\n",

"\n",

"X_log.head()"

]

},

{

"cell_type": "markdown",

"metadata": {},

"source": [

"## 2.feat编码: TF-IDF\n",

"原始特征feat_x看起来像计数特征,类似文本分析中词频特征的处理,TF-IDF可以突出对特别类别有贡献的低频词。 这里原始特征已经是计数特征了,直接调用TfidfTransformer,将计数特征变成TF-IDF 如果输入是原始文本,需要将计数功能(TF)和IDF功能集中在一起,用TfidfVectorizer"

]

},

{

"cell_type": "code",

"execution_count": 7,

"metadata": {},

"outputs": [

{

"data": {

"text/html": [

"

\n",

"

" .dataframe tbody tr th:only-of-type {\n",

" vertical-align: middle;\n",

" }\n",

"\n",

" .dataframe tbody tr th {\n",

" vertical-align: top;\n",

" }\n",

"\n",

" .dataframe thead th {\n",

" text-align: right;\n",

" }\n",

"\n",

"

" \n",

"

\n",

"

\n",

"

pregnants_tfidf\n",

"

Plasma_glucose_concentration_tfidf\n",

"

blood_pressure_tfidf\n",

"

Triceps_skin_fold_thickness_tfidf\n",

"

serum_insulin_tfidf\n",

"

BMI_tfidf\n",

"

Diabetes_pedigree_function_tfidf\n",

"

Age_tfidf\n",

"

\n",

"

\n",

"

\n",

"

\n",

"

0\n",

"

0.037717\n",

"

0.810132\n",

"

0.409804\n",

"

0.256931\n",

"

0.000000\n",

"

0.185363\n",

"

0.003410\n",

"

0.271919\n",

"

\n",

"

\n",

"

1\n",

"

0.009341\n",

"

0.691357\n",

"

0.558183\n",

"

0.316326\n",

"

0.000000\n",

"

0.218049\n",

"

0.002836\n",

"

0.250508\n",

"

\n",

"

\n",

"

2\n",

"

0.046188\n",

"

0.920021\n",

"

0.334562\n",

"

0.000000\n",

"

0.000000\n",

"

0.118057\n",

"

0.003357\n",

"

0.159835\n",

"

\n",

"

\n",

"

3\n",

"

0.005813\n",

"

0.450469\n",

"

0.347351\n",

"

0.156119\n",

"

0.787603\n",

"

0.143341\n",

"

0.000840\n",

"

0.105602\n",

"

\n",

"

\n",

"

4\n",

"

0.000000\n",

"

0.426849\n",

"

0.129587\n",

"

0.146243\n",

"

0.866498\n",

"

0.135338\n",

"

0.007082\n",

"

0.102151\n",

"

\n",

"

\n",

"

\n",

"

"

],

"text/plain": [

" pregnants_tfidf Plasma_glucose_concentration_tfidf blood_pressure_tfidf \\\n",

"0 0.037717 0.810132 0.409804 \n",

"1 0.009341 0.691357 0.558183 \n",

"2 0.046188 0.920021 0.334562 \n",

"3 0.005813 0.450469 0.347351 \n",

"4 0.000000 0.426849 0.129587 \n",

"\n",

" Triceps_skin_fold_thickness_tfidf serum_insulin_tfidf BMI_tfidf \\\n",

"0 0.256931 0.000000 0.185363 \n",

"1 0.316326 0.000000 0.218049 \n",

"2 0.000000 0.000000 0.118057 \n",

"3 0.156119 0.787603 0.143341 \n",

"4 0.146243 0.866498 0.135338 \n",

"\n",

" Diabetes_pedigree_function_tfidf Age_tfidf \n",

"0 0.003410 0.271919 \n",

"1 0.002836 0.250508 \n",

"2 0.003357 0.159835 \n",

"3 0.000840 0.105602 \n",

"4 0.007082 0.102151 "

]

},

"execution_count": 7,

"metadata": {},

"output_type": "execute_result"

}

],

"source": [

"# transform counts to TFIDF features\n",

"from sklearn.feature_extraction.text import TfidfTransformer\n",

"tfidf = TfidfTransformer()\n",

"\n",

"#输出稀疏矩阵\n",

"X_tfidf = tfidf.fit_transform(X_diabetes).toarray()\n",

"\n",

"#重新组成DataFrame,为了可视化\n",

"feat_names = columns_org + \"_tfidf\"\n",

"X_tfidf = pd.DataFrame(columns = feat_names, data = X_tfidf)\n",

"\n",

"X_tfidf.head()"

]

},

{

"cell_type": "markdown",

"metadata": {},

"source": [

"## 3.其他特征工程"

]

},

{

"cell_type": "code",

"execution_count": 8,

"metadata": {

"scrolled": true

},

"outputs": [

{

"name": "stdout",

"output_type": "stream",

"text": [

"pregnants 0\n",

"Plasma_glucose_concentration 5\n",

"blood_pressure 35\n",

"Triceps_skin_fold_thickness 227\n",

"serum_insulin 374\n",

"BMI 11\n",

"Diabetes_pedigree_function 0\n",

"Age 0\n",

"Target 0\n",

"dtype: int64\n"

]

}

],

"source": [

"NaN_col_names = ['Plasma_glucose_concentration','blood_pressure','Triceps_skin_fold_thickness','serum_insulin','BMI']\n",

"diabetes[NaN_col_names] = diabetes[NaN_col_names].replace(0, np.NaN)\n",

"print(diabetes.isnull().sum())"

]

},

{

"cell_type": "code",

"execution_count": 9,

"metadata": {},

"outputs": [

{

"data": {

"text/html": [

"

\n",

"

" .dataframe tbody tr th:only-of-type {\n",

" vertical-align: middle;\n",

" }\n",

"\n",

" .dataframe tbody tr th {\n",

" vertical-align: top;\n",

" }\n",

"\n",

" .dataframe thead th {\n",

" text-align: right;\n",

" }\n",

"\n",

"

" \n",

"

\n",

"

\n",

"

Triceps_skin_fold_thickness\n",

"

Triceps_skin_fold_thickness_Missing\n",

"

\n",

"

\n",

"

\n",

"

\n",

"

0\n",

"

35.0\n",

"

0\n",

"

\n",

"

\n",

"

1\n",

"

29.0\n",

"

0\n",

"

\n",

"

\n",

"

2\n",

"

NaN\n",

"

1\n",

"

\n",

"

\n",

"

3\n",

"

23.0\n",

"

0\n",

"

\n",

"

\n",

"

4\n",

"

35.0\n",

"

0\n",

"

\n",

"

\n",

"

5\n",

"

NaN\n",

"

1\n",

"

\n",

"

\n",

"

6\n",

"

32.0\n",

"

0\n",

"

\n",

"

\n",

"

7\n",

"

NaN\n",

"

1\n",

"

\n",

"

\n",

"

8\n",

"

45.0\n",

"

0\n",

"

\n",

"

\n",

"

9\n",

"

NaN\n",

"

1\n",

"

\n",

"

\n",

"

\n",

"

"

],

"text/plain": [

" Triceps_skin_fold_thickness Triceps_skin_fold_thickness_Missing\n",

"0 35.0 0\n",

"1 29.0 0\n",

"2 NaN 1\n",

"3 23.0 0\n",

"4 35.0 0\n",

"5 NaN 1\n",

"6 32.0 0\n",

"7 NaN 1\n",

"8 45.0 0\n",

"9 NaN 1"

]

},

"execution_count": 9,

"metadata": {},

"output_type": "execute_result"

}

],

"source": [

"#缺失值比较多,新增一个新的字段,表明是缺失值还是不是缺失值\n",

"diabetes['Triceps_skin_fold_thickness_Missing'] = diabetes['Triceps_skin_fold_thickness'].apply(lambda x: 1 if pd.isnull(x) else 0)\n",

"diabetes[['Triceps_skin_fold_thickness','Triceps_skin_fold_thickness_Missing']].head(10)"

]

},

{

"cell_type": "code",

"execution_count": 10,

"metadata": {},

"outputs": [

{

"data": {

"text/plain": [

""

]

},

"execution_count": 10,

"metadata": {},

"output_type": "execute_result"

},

{

"data": {

"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAELCAYAAADDZxFQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAGnpJREFUeJzt3XuQFeWd//H3Ry6CEUVgdJEBId42EJdBRzRGE2+/H4Ssikm0YJP1HkwVScwmsjGplCLRqiSbROOa6GK8YGJQ10RF10vUqKzZKCIiAi4lRn8yooKorC6iMn5/f/QzchyfGQ44PWdgPq+qU3P66ae7v+cMnM883X26FRGYmZm1tl2tCzAzs67JAWFmZlkOCDMzy3JAmJlZlgPCzMyyHBBmZpblgDAzsywHhJmZZTkgzMwsq2etC/goBg0aFMOHD691GWZmW5XHHnvslYio21S/rToghg8fzvz582tdhpnZVkXS/6umn3cxmZlZlgPCzMyyHBBmZpa1VR+DMDOrlXfffZempibWr19f61La1KdPH+rr6+nVq9cWLe+AMDPbAk1NTfTr14/hw4cjqdblfEhEsGbNGpqamhgxYsQWrcO7mMzMtsD69esZOHBglwwHAEkMHDjwI41wHBBmZluoq4ZDi49anwPCzMyyfAzCzKwDrFmzhqOOOgqAl156iR49elBXV3xZed68efTu3bvDt7lgwQJWrVrF+PHjO3zd4IDggGnX1rqELuOxfzmp1iWYbbUGDhzIwoULAZg+fTo77rgjZ599dtXLNzc306NHj83a5oIFC1i8eHFpAeFdTGZmJTvmmGM44IADGDVqFL/+9a8B2LBhA/379+cHP/gBY8eOZd68ecyZM4d9992Xww47jG984xtMnDgRgDfffJNTTjmFsWPHMmbMGG677TbeeustZsyYwXXXXUdDQwM33XRTh9dd2ghCUh9gLrB92s5NEXGepGuAzwJrU9dTImKhiqMpvwAmAOtS+4Ky6jMz6yyzZs1iwIABrFu3jsbGRr74xS/Sr18/1q5dy/77788FF1zAunXr2Gefffjzn//MsGHDOPHEE99ffsaMGYwfP55rrrmG1157jYMOOohFixZx7rnnsnjxYi6++OJS6i5zBPE2cGREjAYagPGSDk7zpkVEQ3osTG2fA/ZOjynAZSXWZmbWaS666CJGjx7Npz71KZqamnjmmWcA6N27N8cffzwAS5cuZd9992WPPfZAEpMnT35/+T/+8Y9ceOGFNDQ0cMQRR7B+/Xqef/750usubQQREQG8mSZ7pUe0s8hxwLVpuYcl9Zc0OCJeLKtGM7Oy3XvvvcydO5eHH36Yvn37cuihh77/3YS+ffu+fypq8dGXFxHccsst7Lnnnh9onzt3bnmFU/IxCEk9JC0EVgH3RMQjadaFkhZJukjS9qltCLCiYvGm1GZmttVau3YtAwYMoG/fvixZsoRHH30022/UqFEsW7aMFStWEBHccMMN788bN24cl1xyyfvTjz/+OAD9+vXjjTfeKK32UgMiIpojogGoB8ZK+iTwPeBvgQOBAcB3U/fcNzo+FKmSpkiaL2n+6tWrS6rczKxjfP7zn2fdunWMHj2aGTNmcNBBB2X77bDDDlx66aUcffTRHHbYYey+++7svPPOAJx33nmsW7eO/fbbj1GjRjF9+nQAjjzySJ544gnGjBmzdR2krhQRr0t6ABgfET9NzW9LuhpoOQ+sCRhasVg9sDKzrpnATIDGxsb2dlmZmdVEywc4FBfMu/vuu7P9Xn/99Q9MH3300SxbtoyI4Mwzz6SxsRGAj33sY1xxxRUfWr6urq7Um6aVNoKQVCepf3reFzga+G9Jg1ObgInA4rTIHOAkFQ4G1vr4g5l1J5dddhkNDQ2MHDmSt956i69+9as1rafMEcRgYJakHhRBdGNE3C7pT5LqKHYpLQS+lvrfQXGK63KK01xPLbE2M7MuZ9q0aUybNq3WZbyvzLOYFgFjMu1HttE/gKll1WNmZpvH36Q2M7MsB4SZmWU5IMzMLKvbX83VzKwjdPSVoau5uvJdd93FWWedRXNzM2eccQbnnHNOh9bgEYSZ2VaoubmZqVOncuedd7J06VJmz57N0qVLO3QbDggzs63QvHnz2Guvvfj4xz9O7969mTRpErfeemuHbsMBYWa2FXrhhRcYOnTjxSfq6+t54YUXOnQbDggzs61Q7uqvLVeG7SgOCDOzrVB9fT0rVmy8AHZTUxO77757h27DAWFmthU68MADefrpp3n22Wd55513uP766zn22GM7dBs+zdXMrANUc1pqR+rZsyeXXnop48aNo7m5mdNOO41Ro0Z17DY6dG1mZtZpJkyYwIQJE0pbv3cxmZlZlgPCzMyyHBBmZpblgDAzsywHhJmZZTkgzMwsy6e5mpl1gOdn7Neh6xt27pOb7HPaaadx++23s+uuu7J48eIO3T54BGFmttU65ZRTuOuuu0pbf2kBIamPpHmSnpC0RNL5qX2EpEckPS3pBkm9U/v2aXp5mj+8rNrMzLYFn/nMZxgwYEBp6y9zBPE2cGREjAYagPGSDgZ+DFwUEXsDrwGnp/6nA69FxF7ARamfmZnVSGkBEYU302Sv9AjgSOCm1D4LmJieH5emSfOPUkdfu9bMzKpW6jEIST0kLQRWAfcAzwCvR8SG1KUJGJKeDwFWAKT5a4GBZdZnZmZtKzUgIqI5IhqAemAs8Ilct/QzN1r40B0xJE2RNF/S/NWrV3dcsWZm9gGdcpprRLwu6QHgYKC/pJ5plFAPrEzdmoChQJOknsDOwKuZdc0EZgI0NjZ++JZKZmY1UM1pqR1t8uTJPPDAA7zyyivU19dz/vnnc/rpp296wSqVFhCS6oB3Uzj0BY6mOPB8P/Al4HrgZKDlLttz0vRf0vw/Re6eemZmBsDs2bNLXX+ZI4jBwCxJPSh2Zd0YEbdLWgpcL+kC4HHgytT/SuA3kpZTjBwmlVibmZltQmkBERGLgDGZ9r9SHI9o3b4eOKGseszMbPP4m9RmZluoq+8F/6j1OSDMzLZAnz59WLNmTZcNiYhgzZo19OnTZ4vX4Yv1mZltgfr6epqamujKp9v36dOH+vr6LV7eAWFmtgV69erFiBEjal1GqbyLyczMshwQZmaW5YAwM7MsB4SZmWU5IMzMLMsBYWZmWQ4IMzPLckCYmVmWA8LMzLIcEGZmluWAMDOzLAeEmZllOSDMzCzLAWFmZlkOCDMzy3JAmJlZVmkBIWmopPslPSVpiaSzUvt0SS9IWpgeEyqW+Z6k5ZKWSRpXVm1mZrZpZd5RbgPwnYhYIKkf8Jike9K8iyLip5WdJY0EJgGjgN2BeyXtExHNJdZoZmZtKG0EEREvRsSC9PwN4ClgSDuLHAdcHxFvR8SzwHJgbFn1mZlZ+zrlGISk4cAY4JHU9HVJiyRdJWmX1DYEWFGxWBOZQJE0RdJ8SfO78s3Czcy2dqUHhKQdgd8D34qI/wEuA/YEGoAXgZ+1dM0sHh9qiJgZEY0R0VhXV1dS1WZmVmpASOpFEQ7XRcQfACLi5Yhojoj3gCvYuBupCRhasXg9sLLM+szMrG1lnsUk4ErgqYj4eUX74IpuxwOL0/M5wCRJ20saAewNzCurPjMza1+ZZzF9GvhH4ElJC1Pb94HJkhoodh89B5wJEBFLJN0ILKU4A2qqz2AyM6ud0gIiIh4if1zhjnaWuRC4sKyazMysev4mtZmZZTkgzMwsywFhZmZZDggzM8tyQJiZWZYDwszMshwQZmaW5YAwM7MsB4SZmWU5IMzMLMsBYWZmWQ4IMzPLckCYmVmWA8LMzLIcEGZmluWAMDOzLAeEmZllVRUQku6rps3MzLYd7d5yVFIfYAdgkKRd2HgL0Z2A3UuuzczMamhTI4gzgceAv00/Wx63Ar9sb0FJQyXdL+kpSUsknZXaB0i6R9LT6ecuqV2SLpG0XNIiSft/1BdnZmZbrt2AiIhfRMQI4OyI+HhEjEiP0RFx6SbWvQH4TkR8AjgYmCppJHAOcF9E7A3cl6YBPgfsnR5TgMu2/GWZmdlH1e4uphYR8a+SDgGGVy4TEde2s8yLwIvp+RuSngKGAMcBh6dus4AHgO+m9msjIoCHJfWXNDitx8zMOllVASHpN8CewEKgOTUH0GZAtFp+ODAGeATYreVDPyJelLRr6jYEWFGxWFNqc0CYmdVAVQEBNAIj01/3m0XSjsDvgW9FxP9IarNrpu1D25M0hWIXFMOGDdvccszMrErVfg9iMfA3m7tySb0owuG6iPhDan5Z0uA0fzCwKrU3AUMrFq8HVrZeZ0TMjIjGiGisq6vb3JLMzKxK1QbEIGCppLslzWl5tLeAiqHClcBTEfHzillzgJPT85MpzohqaT8pnc10MLDWxx/MzGqn2l1M07dg3Z8G/hF4UtLC1PZ94EfAjZJOB54HTkjz7gAmAMuBdcCpW7BNMzPrINWexfTg5q44Ih4if1wB4KhM/wCmbu52zMysHNWexfQGGw8Y9wZ6Af8bETuVVZiZmdVWtSOIfpXTkiYCY0upyMzMuoQtupprRNwCHNnBtZiZWRdS7S6mL1RMbkfxvYjN/k6EmZltPao9i+mYiucbgOcoLo1hZmbbqGqPQfiUUzOzbqbaGwbVS7pZ0ipJL0v6vaT6soszM7PaqXYX09XA79j4pbavpLb/U0ZRVhvPz9iv1iV0GcPOfbLWJZjVXLVnMdVFxNURsSE9rgF8ISQzs21YtQHxiqSvSOqRHl8B1pRZmJmZ1Va1AXEacCLwEsX9Gb6Er5VkZrZNq/YYxA+BkyPiNSjuKw38lCI4zMxsG1TtCOLvWsIBICJepbhDnJmZbaOqDYjtJO3SMpFGENWOPszMbCtU7Yf8z4D/knQTxSU2TgQuLK0qMzOruWq/SX2tpPkUF+gT8IWIWFpqZWZmVlNV7yZKgeBQMDPrJrboct9mZrbtc0CYmVmWA8LMzLJKCwhJV6Wrvy6uaJsu6QVJC9NjQsW870laLmmZpHFl1WVmZtUpcwRxDTA+035RRDSkxx0AkkYCk4BRaZlfSepRYm1mZrYJpQVERMwFXq2y+3HA9RHxdkQ8CywHxpZVm5mZbVotjkF8XdKitAuq5dvZQ4AVFX2aUpuZmdVIZwfEZcCeQAPFVWF/ltqV6Ru5FUiaImm+pPmrV68up0ozM+vcgIiIlyOiOSLeA65g426kJmBoRdd6YGUb65gZEY0R0VhX53sWmZmVpVMDQtLgisnjgZYznOYAkyRtL2kEsDcwrzNrMzOzDyrtiqySZgOHA4MkNQHnAYdLaqDYffQccCZARCyRdCPFpTw2AFMjorms2szMbNNKC4iImJxpvrKd/hfiK8SamXUZ/ia1mZll+aY/Zl3UAdOurXUJXcZj/3JSrUvoljyCMDOzLAeEmZllOSDMzCzLAWFmZlkOCDMzy3JAmJlZlgPCzMyyHBBmZpblgDAzsywHhJmZZTkgzMwsywFhZmZZDggzM8tyQJiZWZYDwszMshwQZmaW5YAwM7MsB4SZmWWVFhCSrpK0StLiirYBku6R9HT6uUtql6RLJC2XtEjS/mXVZWZm1SlzBHENML5V2znAfRGxN3Bfmgb4HLB3ekwBLiuxLjMzq0JpARERc4FXWzUfB8xKz2cBEyvar43Cw0B/SYPLqs3MzDats49B7BYRLwKkn7um9iHAiop+TanNzMxqpKscpFamLbIdpSmS5kuav3r16pLLMjPrvjo7IF5u2XWUfq5K7U3A0Ip+9cDK3AoiYmZENEZEY11dXanFmpl1Z50dEHOAk9Pzk4FbK9pPSmczHQysbdkVZWZmtdGzrBVLmg0cDgyS1AScB/wIuFHS6cDzwAmp+x3ABGA5sA44tay6zMysOqUFRERMbmPWUZm+AUwtqxYzM9t8XeUgtZmZdTGljSDMzDrK8zP2q3UJXcawc5/stG15BGFmZlkOCDMzy3JAmJlZlgPCzMyyHBBmZpblgDAzsywHhJmZZTkgzMwsywFhZmZZDggzM8tyQJiZWZYDwszMshwQZmaW5YAwM7MsB4SZmWU5IMzMLMsBYWZmWTW5o5yk54A3gGZgQ0Q0ShoA3AAMB54DToyI12pRn5mZ1XYEcURENEREY5o+B7gvIvYG7kvTZmZWI11pF9NxwKz0fBYwsYa1mJl1e7UKiAD+KOkxSVNS224R8SJA+rlrjWozMzNqdAwC+HRErJS0K3CPpP+udsEUKFMAhg0bVlZ9ZmbdXk1GEBGxMv1cBdwMjAVeljQYIP1c1cayMyOiMSIa6+rqOqtkM7Nup9MDQtLHJPVreQ78X2AxMAc4OXU7Gbi1s2szM7ONarGLaTfgZkkt2/9dRNwl6VHgRkmnA88DJ9SgNjMzSzo9ICLir8DoTPsa4KjOrsfMzPK60mmuZmbWhTggzMwsywFhZmZZDggzM8tyQJiZWZYDwszMshwQZmaW5YAwM7MsB4SZmWU5IMzMLMsBYWZmWQ4IMzPLckCYmVmWA8LMzLIcEGZmluWAMDOzLAeEmZllOSDMzCzLAWFmZlkOCDMzy+pyASFpvKRlkpZLOqfW9ZiZdVddKiAk9QB+CXwOGAlMljSytlWZmXVPXSoggLHA8oj4a0S8A1wPHFfjmszMuqWuFhBDgBUV002pzczMOlnPWhfQijJt8YEO0hRgSpp8U9Ky0qvqJvaAQcArta6jSzgv90/RasX/Nit0zL/NParp1NUCogkYWjFdD6ys7BARM4GZnVlUdyFpfkQ01roOs9b8b7M2utoupkeBvSWNkNQbmATMqXFNZmbdUpcaQUTEBklfB+4GegBXRcSSGpdlZtYtdamAAIiIO4A7al1HN+Vdd9ZV+d9mDSgiNt3LzMy6na52DMLMzLoIB4T58ibWZUm6StIqSYtrXUt35IDo5nx5E+virgHG17qI7soBYb68iXVZETEXeLXWdXRXDgjz5U3MLMsBYZu8vImZdU8OCNvk5U3MrHtyQJgvb2JmWQ6Ibi4iNgAtlzd5CrjRlzexrkLSbOAvwL6SmiSdXuuauhN/k9rMzLI8gjAzsywHhJmZZTkgzMwsywFhZmZZDggzM8tyQJiZWZYDopuRNFDSwvR4SdILFdO9W/W9W1K/WtXamqSHJDVk2reoTkkjJT0h6XFJw9vo01PS623M+62kie2s/9uS+lSxnqmSvtzOeo6WdEt7r6UzSDpDUkj6bEXbCaltYpq+WtK+m7ne4yVN6+h67aPrcrcctXJFxBqgAUDSdODNiPhpZR9JoviOzLjOr3DzfYQ6vwDcFBE/7Mh6KnwbuApY316niPhlSdsvw5PAZODBND0JeKJlZkScurkrjIibO6Y062geQRgAkvaStFjS5cACYHD65mr/NP9USYvSX9xXp7bdJP1B0nxJ8yQdnNovkDRL0v2SnpZ0WmofkkYBC9O2Dmmjlp6SfiPpydTvm63m90h/vU9P002S+le8hislLZF0Z8tf8JltHEvxDfKvSbo3tf1zWn6xpG9kltlO0q8kLZV0GzConffzn4Bdgf9sWX9q/1F6D/8iadeK9+tb6fk+kv6U+ixoPbKRdFBLe1ruSkkPSvqrpKkV/U5Ov5OFqebt2npfJf1Tek1PSPptW68peQA4JK1rJ2AY8P7NfFpGeZuzrTQyuTg9/62kX0j6r/Sajk/tPSRdnn6vt0m6S+2M3qxjeARhlUYCp0bE1wCKgQRIGg18FzgkIl6VNCD1vwT4SUQ8nD7Ibgc+mebtBxwC7AQskPQfwFeA2yLixypuVNS3jToOAAZFxH5p+/0r5vUEfgcsiIgfZ5bdF5gcEU9K+gMwkeIeFx8QEXMkjQVeiYiL0/MvU9wfowcwT9KDwNKKxb4EjEivcfc07/LcC4iIiyR9BzgsIl6X1BPYGXgwIs6R9HPgNOBHrRadDUyPiNtSuG0H7JXeh8OAi4BjI6Ip/X72AY4C+gNPqQj4TwDHU/y+NkiaSfGX/jNtvK//DOwREe+0eq9z3qMIiaOB3YBb0vZaa+t3WM22dgU+TfFv6EbgZuAEisvQ7wf8DcVlYbLvvXUcjyCs0jMR8Wim/Ujghoh4FaDlJ8WHxOWSFlJ8UOwiqeVD/5aIWB8Rq4C5wIEUFwY8Q9J5wCcj4s026lhOce2dX0gaB6ytmHclbYcDFDc/ejI9fwwYvonX3OIw4PcRsS4i3kiv59BWfT4DzI6I9yKiieKDcnO8FRF3tlWbpF0oPlRvA0jv37o0+5PAr4C/T9tucXtEvJPe51eBOorfy4HA/PS7+SywJ22/r0uA36o4DvJuFa/jeorAmUQmfJOPsq1borCIjfcmOZTiOmHvRcRKNu7ishI5IKzS/7bRLvL3iBAwNiIa0mNIRLyV5rXuHxHxJ+Bw4EXgOrVxYDYdJ/k74CHgm8C/Vcz+M3CUpO3bqPXtiufNVD9Kzt0XI1telf1y3ql43lZtba1/ZVq+9UH63OsVcFXF72XfiPhhO+/rOIq/xsdShEqPTbyOvwD7AztFxDO5Dh9xW5WvSa1+WidyQFg17gUmtexaqtjFdC9Qud+78sNroqTtJQ2i+Ot8vqQ9gJciYibFvYbH5DYmqY7iIPm/A+dRfBi1mJm2e33abdNR5gLHS+oraUeK267+Z6bPpLQ/fwjFX+bteQOo+uyqiHgNeEXSMQCS+kjaIc1+Ffh74CdpV1N77gVOTO99y5lrw3Lva/qArk/hPY1iBLJDWytOdQbwPeD7bfXpqG1VeAj4kgqDKUZzVjIfg7BNiohFkn4CzJW0gWL3yOkU4XCZpFMp/i3dz8bAeBS4k+JmROdFxMsqDlZ/W9K7wJsUxyRyhgJXqtjJHhTHPyrr+YmkC4FrJJ3UQa9xnopLS7fsYrssHceo/D9yE3AExUHZZRSB0Z6ZwL2SVgDjqyzly8C/pdf3DvDFihpfVHFw/Y72Xneq+/y07e0oduV8jWKE0fp97Qn8TsVpwtsBP0672NoVEf+xiS6532F2Wy3HujbhRopdnS3v/SN8cNejlcCX+7YOJ+kC0sHfWtdi2w5JO0bEm2l08ghwUESsrnVd2zKPIMxsa3FnOrW2F8Wo1OFQMo8grKYkzefDf6j8Q0QszfXfwm1cDhzcqvnnEXFtB61/DsX3ASqdHRH35vp3dZLOoPiOSKW5EfHNXH/bdjkgzMwsy2cxmZlZlgPCzMyyHBBmZpblgDAzsywHhJmZZf1/ghDaRNNOWUIAAAAASUVORK5CYII=\n",

"text/plain": [

""

]

},

"metadata": {},

"output_type": "display_data"

}

],

"source": [

"import matplotlib.pyplot as plt\n",

"import seaborn as sns\n",

"\n",

"%matplotlib inline\n",

"sns.countplot(x = 'Triceps_skin_fold_thickness_Missing', hue = 'Target', data = diabetes)"

]

},

{

"cell_type": "code",

"execution_count": 11,

"metadata": {},

"outputs": [

{

"data": {

"text/plain": [

""

]

},

"execution_count": 11,

"metadata": {},

"output_type": "execute_result"

},

{

"data": {

"image/png": "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\n",

"text/plain": [

""

]

},

"metadata": {},

"output_type": "display_data"

}

],

"source": [

"#缺失值比较多,新增一个新的字段,表明是缺失值还是不是缺失值\n",

"diabetes['serum_insulin_Missing'] = diabetes['serum_insulin'].apply(lambda x: 1 if pd.isnull(x) else 0)\n",

"sns.countplot(x = 'serum_insulin_Missing', hue = 'Target', data = diabetes)"

]

},

{

"cell_type": "markdown",

"metadata": {},

"source": [

"特征是否缺失和目标也没什么关系"

]

},

{

"cell_type": "code",

"execution_count": 12,

"metadata": {},

"outputs": [

{

"name": "stdout",

"output_type": "stream",

"text": [

"pregnants 0\n",

"Plasma_glucose_concentration 0\n",

"blood_pressure 0\n",

"Triceps_skin_fold_thickness 0\n",

"serum_insulin 0\n",

"BMI 0\n",

"Diabetes_pedigree_function 0\n",

"Age 0\n",

"Target 0\n",

"dtype: int64\n"

]

}

],

"source": [

"#删除新增项\n",

"diabetes.drop(['Triceps_skin_fold_thickness_Missing','serum_insulin_Missing'],axis = 1, inplace = True)\n",

"\n",

"#用中值填补\n",

"medians = diabetes.median()\n",

"diabetes = diabetes.fillna(medians)\n",

"\n",

"print(diabetes.isnull().sum())"

]

},

{

"cell_type": "markdown",

"metadata": {},

"source": [

"## 数据标准化"

]

},

{

"cell_type": "code",

"execution_count": 13,

"metadata": {},

"outputs": [],

"source": [

"# get labels\n",

"y_diabetes = diabetes['Target']\n",

"X_diabetes = diabetes.drop(['Target'], axis = 1)\n",

"\n",

"#用于保存特征工程之后的结果\n",

"feat_names = X_diabetes.columns\n",

"\n",

"#数据标准化\n",

"from sklearn.preprocessing import StandardScaler\n",

"\n",

"# 初始化特征的标准化器\n",

"ss_X = StandardScaler()\n",

"\n",

"#分别对训练和测试数据的特征进行标准化处理\n",

"X_diabetes = ss_X.fit_transform(X_diabetes)"

]

},

{

"cell_type": "code",

"execution_count": 14,

"metadata": {},

"outputs": [],

"source": [

"# 对log数据缩放\n",

"from sklearn.preprocessing import MinMaxScaler\n",

"# 构造输入特征的标准化器\n",

"ms_log = MinMaxScaler()\n",

"\n",

"#保存特征名字,用于结果保存为csv\n",

"feat_names_log = X_log.columns\n",

"\n",

"# 用训练模型训练好的缩放器对测试数据进行特征缩放:transform\n",

"X_log =ms_log.fit_transform(X_log)"

]

},

{

"cell_type": "code",

"execution_count": 15,

"metadata": {},

"outputs": [],

"source": [

"# 对tf-idf数据缩放\n",

"from sklearn.preprocessing import MinMaxScaler\n",

"# 构造输入特征的标准化器\n",

"ms_tfidf = MinMaxScaler()\n",

"\n",

"#保存特征名字,用于结果保存为csv\n",

"feat_names_tfidf = X_tfidf.columns\n",

"\n",

"# 用训练模型训练好的缩放器对测试数据进行特征缩放:transform\n",

"X_tfidf = ms_tfidf.fit_transform(X_tfidf)"

]

},

{

"cell_type": "markdown",

"metadata": {},

"source": [

"## 特征处理结果存为文件"

]

},

{

"cell_type": "code",

"execution_count": 16,

"metadata": {},

"outputs": [],

"source": [

"#保存原始特征\n",

"X_diabetes = pd.DataFrame(columns = feat_names, data = X_diabetes)\n",

"\n",

"diabetes = pd.concat([X_diabetes, y_diabetes], axis = 1)\n",

"\n",

"diabetes.to_csv('FE_pima_indians_diabetes.csv', index = False, header = True)"

]

},

{

"cell_type": "code",

"execution_count": 17,

"metadata": {},

"outputs": [

{

"data": {

"text/html": [

"

\n",

"

" .dataframe tbody tr th:only-of-type {\n",

" vertical-align: middle;\n",

" }\n",

"\n",

" .dataframe tbody tr th {\n",

" vertical-align: top;\n",

" }\n",

"\n",

" .dataframe thead th {\n",

" text-align: right;\n",

" }\n",

"\n",

"

" \n",

"

\n",

"

\n",

"

pregnants\n",

"

Plasma_glucose_concentration\n",

"

blood_pressure\n",

"

Triceps_skin_fold_thickness\n",

"

serum_insulin\n",

"

BMI\n",

"

Diabetes_pedigree_function\n",

"

Age\n",

"

Target\n",

"

\n",

"

\n",

"

\n",

"

\n",

"

0\n",

"

0.639947\n",

"

0.866045\n",

"

-0.031990\n",

"

0.670643\n",

"

-0.181541\n",

"

0.166619\n",

"

0.468492\n",

"

1.425995\n",

"

1\n",

"

\n",

"

\n",

"

1\n",

"

-0.844885\n",

"

-1.205066\n",

"

-0.528319\n",

"

-0.012301\n",

"

-0.181541\n",

"

-0.852200\n",

"

-0.365061\n",

"

-0.190672\n",

"

0\n",

"

\n",

"

\n",

"

2\n",

"

1.233880\n",

"

2.016662\n",

"

-0.693761\n",

"

-0.012301\n",

"

-0.181541\n",

"

-1.332500\n",

"

0.604397\n",

"

-0.105584\n",

"

1\n",

"

\n",

"

\n",

"

3\n",

"

-0.844885\n",

"

-1.073567\n",

"

-0.528319\n",

"

-0.695245\n",

"

-0.540642\n",

"

-0.633881\n",

"

-0.920763\n",

"

-1.041549\n",

"

0\n",

"

\n",

"

\n",

"

4\n",

"

-1.141852\n",

"

0.504422\n",

"

-2.679076\n",

"

0.670643\n",

"

0.316566\n",

"

1.549303\n",

"

5.484909\n",

"

-0.020496\n",

"

1\n",

"

\n",

"

\n",

"

\n",

"

"

],

"text/plain": [

" pregnants Plasma_glucose_concentration blood_pressure \\\n",

"0 0.639947 0.866045 -0.031990 \n",

"1 -0.844885 -1.205066 -0.528319 \n",

"2 1.233880 2.016662 -0.693761 \n",

"3 -0.844885 -1.073567 -0.528319 \n",

"4 -1.141852 0.504422 -2.679076 \n",

"\n",

" Triceps_skin_fold_thickness serum_insulin BMI \\\n",

"0 0.670643 -0.181541 0.166619 \n",

"1 -0.012301 -0.181541 -0.852200 \n",

"2 -0.012301 -0.181541 -1.332500 \n",

"3 -0.695245 -0.540642 -0.633881 \n",

"4 0.670643 0.316566 1.549303 \n",

"\n",

" Diabetes_pedigree_function Age Target \n",

"0 0.468492 1.425995 1 \n",

"1 -0.365061 -0.190672 0 \n",

"2 0.604397 -0.105584 1 \n",

"3 -0.920763 -1.041549 0 \n",

"4 5.484909 -0.020496 1 "

]

},

"execution_count": 17,

"metadata": {},

"output_type": "execute_result"

}

],

"source": [

"diabetes.head()"

]

},

{

"cell_type": "code",

"execution_count": 18,

"metadata": {},

"outputs": [],

"source": [

"#保存log特征变换结果\n",

"y = pd.Series(data = y_diabetes, name = 'Target')\n",

"test_log = pd.concat([pd.DataFrame(columns = feat_names_log, data = X_log),y], axis = 1)\n",

"test_log.to_csv('FE_diabetes_log.csv',index=False,header=True)"

]

},

{

"cell_type": "code",

"execution_count": 19,

"metadata": {},

"outputs": [],

"source": [

"#保存tf-idf特征变换结果\n",

"y = pd.Series(data = y_diabetes, name = 'Target')\n",

"test_tfidf = pd.concat([pd.DataFrame(columns = feat_names_tfidf, data = X_tfidf),y], axis = 1)\n",

"test_tfidf.to_csv('FE_diabetes_tfidf.csv',index=False,header=True)"

]

},

{

"cell_type": "code",

"execution_count": null,

"metadata": {},

"outputs": [],

"source": []

}

],

"metadata": {

"kernelspec": {

"display_name": "Python 3",

"language": "python",

"name": "python3"

},

"language_info": {

"codemirror_mode": {

"name": "ipython",

"version": 3

},

"file_extension": ".py",

"mimetype": "text/x-python",

"name": "python",

"nbconvert_exporter": "python",

"pygments_lexer": "ipython3",

"version": "3.6.4"

}

},

"nbformat": 4,

"nbformat_minor": 2

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值