diff --git a/Sklearn/sklearn-cookbook-zh/0.1 fit&transform.md b/Sklearn/sklearn-cookbook-zh/0.1 fit&transform.md new file mode 100644 index 00000000..0e7ec3f5 --- /dev/null +++ b/Sklearn/sklearn-cookbook-zh/0.1 fit&transform.md @@ -0,0 +1,61 @@ +# fit&transform说明 + +## 1 概述 + +* fit和transform没有任何关系,仅仅是数据处理的两个不同环节,之所以出来fit_transform这个函数名,仅仅是为了写代码方便,会高效一点。 + +* sklearn里的封装好的各种算法使用前都要fit,fit相对于整个代码而言,为后续API服务。fit之后,然后调用各种API方法,transform只是其中一个API方法,所以当你调用transform之外的方法,也必须要先fit。 + +* fit原义指的是安装、使适合的意思,其实有点train的含义,但是和train不同的是,它并不是一个训练的过程,而是一个适配的过程,过程都是确定的,最后得到一个可用于转换的有价值的信息。 + +## 2 使用 + +## 2.1 数据预处理中方法 + +``` +fit(): Method calculates the parameters μ and σ and saves them as internal objects. +解释:简单来说,就是求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。 +``` +``` +transform(): Method using these calculated parameters apply the transformation to a particular dataset. +解释:在fit的基础上,进行标准化,降维,归一化等操作(看具体用的是哪个工具,如PCA,StandardScaler等)。 +``` +``` +fit_transform(): joins the fit() and transform() method for transformation of dataset. +解释:fit_transform是fit和transform的组合,既包括了训练又包含了转换。 +``` +* transform()和fit_transform()二者的功能都是对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化,正则化等) + +* fit_transform(trainData)对部分数据先拟合fit,找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的),然后对该trainData进行转换transform,从而实现数据的标准化、归一化等等。 + +* 根据对之前部分trainData进行fit的整体指标,对剩余的数据(testData)使用同样的均值、方差、最大最小值等指标进行转换transform(testData),从而保证train、test处理方式相同。 +* 所以,一般都是这么用: + +``` +from sklearn.preprocessing import StandardScaler +sc = StandardScaler() +sc.fit_tranform(X_train) +sc.tranform(X_test) +``` + +## 2.2 各种算法的fit,transform方法 + +1. CountVectorizer举例,sklearn的CountVectorizer库是根据输入数据获取词频矩阵(稀疏矩阵) + 1. fit(raw_documents) :根据CountVectorizer参数规则进行操作,比如滤除停用词等,拟合原始数据,生成文档中有价值的词汇表; + 2. transform(raw_documents):使用符合fit的词汇表或提供给构造函数的词汇表,从原始文本文档中提取词频,转换成词频矩阵. + 3. fit_transform(raw_documents, y=None):学习词汇词典并返回术语 - 文档矩阵(稀疏矩阵)。 + +2. TfidfTransformer举例,TF-IDF(Term frequency * Inverse Doc Frequency)词权重。 + + 在较低的文本语料库中,一些词非常常见(例如,英文中的“the”,“a”,“is”),因此很少带有文档实际内容的有用信息。如果我们将单纯的计数数据直接喂给分类器,那些频繁出现的词会掩盖那些很少出现但是更有意义的词的频率。 + + 为了重新计算特征的计数权重,以便转化为适合分类器使用的浮点值,通常都会进行tf-idf转换。词重要性度量一般使用文本挖掘的启发式方法:TF-IDF。IDF,逆向文件频率(inverse document frequency)是一个词语普遍重要性的度量(不同词重要性的度量)。 + 1. fit(raw_documents, y=None):根据训练集生成词典和逆文档词频 由fit方法计算的每个特征的权重存储在model的idf_属性中。 + 2. transform(raw_documents, copy=True):使用fit(或fit_transform)学习的词汇和文档频率(df),将文档转换为文档 - 词矩阵。返回稀疏矩阵,[n_samples, n_features],即,Tf-idf加权文档矩阵(Tf-idf-weighted document-term matrix)。 + +## 3 总结 +* 上述第一类和第二类等价。算法中的fit方法的应用等价于第一类的fit,只不过产生的结果意义不同(不是均值等统计意义,而是根据算法本身拟合获取不同信息以备后用),transform根据fit的结果转换成目标形式,具体需深究代码实现。 + +* 必须先用fit_transform(trainData),之后再transform(testData) + * 如果直接transform(testData),程序会报错。 + * 如果fit_transfrom(trainData)后,使用fit_transform(testData)而不transform(testData),虽然也能归一化,但是两个结果不是在同一个“标准”下的,具有明显差异。(一定要避免这种情况) diff --git a/Sklearn/sklearn-cookbook-zh/1.ipynb b/Sklearn/sklearn-cookbook-zh/1.ipynb index e69de29b..070fa4aa 100644 --- a/Sklearn/sklearn-cookbook-zh/1.ipynb +++ b/Sklearn/sklearn-cookbook-zh/1.ipynb @@ -0,0 +1,542 @@ +{ + "metadata": { + "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.8.0-final" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.8.0 64-bit", + "metadata": { + "interpreter": { + "hash": "38740d3277777e2cd7c6c2cc9d8addf5118fdf3f82b1b39231fd12aeac8aee8b" + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "## 1.1 获取外部样本数据" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn import datasets\n", + "import numpy as np \n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(506, 13) (506,)\n" + ] + } + ], + "source": [ + "# 从外部源获取数据\n", + "boston = datasets.load_boston()\n", + "data1 = boston.data\n", + "label1 = boston.target\n", + "print(data1.shape,label1.shape)" + ] + }, + { + "source": [ + "## 1.2 创建实验样本数据" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-03-21T20:06:59.426949\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.2, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(1000, 1)" + ] + }, + "metadata": {}, + "execution_count": 73 + } + ], + "source": [ + "# 生成回归数据\n", + "reg_data = datasets.make_regression(n_samples=1000,n_features=1,n_targets=1,bias=4.5,noise=1.9)\n", + "\n", + "fig = plt.figure(1)\n", + "plt.scatter(reg_data[0],reg_data[1])\n", + "plt.show()\n", + "reg_data[0].shape" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-03-21T20:12:38.151392\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.2, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[81 19]\n" + ] + } + ], + "source": [ + "# 构建分类数据\n", + "cls_data = datasets.make_classification(n_features=4,weights=[0.8])\n", + "fig = plt.figure(2)\n", + "ax = fig.add_subplot(111)\n", + "ax.set_title(\"make class data\")\n", + "colors = np.array(['r','g','b'])\n", + "plt.scatter(cls_data[0][:,0],cls_data[0][:,1],color=colors[cls_data[1].astype(int)])\n", + "plt.show()\n", + "print(np.bincount(cls_data[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 71 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-03-21T20:06:04.354375\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.2, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "# 生成聚簇的数据\n", + "blobs = datasets.make_blobs(200)\n", + "\n", + "fig = plt.figure(figsize=(8,4))\n", + "ax = fig.add_subplot(111)\n", + "ax.set_title(\"A blob with 3 ceters\")\n", + "colors = np.array(['r','g','b'])\n", + "ax.scatter(blobs[0][:,0],blobs[0][:,1],color=colors[blobs[1].astype(int)],alpha=0.75)" + ] + }, + { + "source": [ + "## 1.3 把数据调整为正太分布" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[ 3.61352356 11.36363636 11.13677866] [ 8.59304135 23.29939569 6.85357058]\n[-8.78743718e-17 -6.34319123e-16 -2.68291099e-15] [1. 1. 1.]\n[0. 0. 0.] [1. 1. 1.]\n[0.14657712 0.25834782 0.7353328 ] [0.22612514 0.43091533 0.36638317]\n" + ] + } + ], + "source": [ + "# 把数据调整为正态分布。直接进行标准化\n", + "from sklearn import preprocessing\n", + "X,y= boston.data,boston.target\n", + "X_mean = X[:,:3].mean(axis=0)\n", + "X_std = X[:,:3].std(axis=0)\n", + "print(X_mean,X_std)\n", + "X2 = preprocessing.scale(X[:,:3])\n", + "X2_mean = X2.mean(axis=0)\n", + "X2_std = X2.std(axis=0)\n", + "print(X2_mean,X2_std)\n", + "# 使用minimax方法标准化。标准化对象持续标准化\n", + "minmax_scaler = preprocessing.MinMaxScaler()\n", + "minmax_scaler.fit(X[:,:3])\n", + "X3 = minmax_scaler.transform(X[:,:3])\n", + "print(X3.min(axis=0),X3.max(axis=0))\n", + "# 使用正态分布标准化。标准化对象,持续标准化后续数据\n", + "X4 = preprocessing.normalize(X[:,:3])\n", + "print(X4.mean(axis=0),X4.std(axis=0))" + ] + }, + { + "source": [ + "## 1.5 分类变量处理" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[1 4]\n [2 5]\n [3 6]]\n[[1 2 3]]\n[[1]\n [2]\n [3]]\n[[1]\n [2]\n [3]]\n[[1. 0. 0.]\n [1. 0. 0.]\n [1. 0. 0.]\n [1. 0. 0.]\n [1. 0. 0.]]\n[[1. 0. 0.]\n [1. 0. 0.]\n [1. 0. 0.]\n [1. 0. 0.]\n [1. 0. 0.]]\n" + ] + } + ], + "source": [ + "# 维度转换.用来合并两个矩阵\n", + "# column实现了多列合并。次级元素按列组合\n", + "print(np.column_stack(([1,2,3],[4,5,6])))\n", + "print(np.column_stack([1,2,3]))\n", + "# row实现了按行合并.次级元素按行组合\n", + "print(np.row_stack([[1],[2],[3]]))\n", + "print(np.row_stack([1,2,3]))\n", + "d = np.column_stack((X[:,:2],y))\n", + "# 分类变量的处理,OneHotEncoder编码数据\n", + "iris = datasets.load_iris()\n", + "X = iris.data\n", + "y = iris.target\n", + "d = np.column_stack((X,y))\n", + "\n", + "text_encoder = preprocessing.OneHotEncoder()\n", + "a = text_encoder.fit_transform(d[:,-1:]).toarray()\n", + "print(a[:5])\n", + "# 将字符串按字典方式编码\n", + "from sklearn.feature_extraction import DictVectorizer\n", + "dv = DictVectorizer()\n", + "my_dict = [{'speciex':iris.target_names[i]}for i in y]\n", + "b = dv.fit_transform(my_dict).toarray()[:5]\n", + "print(b[:5])" + ] + }, + { + "source": [ + "## 1.7 处理缺失值" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[5.1 3.5 1.4 nan]\n [4.9 3. 1.4 0.2]\n [4.7 nan nan nan]\n [nan 3.1 nan 0.2]\n [nan 3.6 1.4 0.2]]\n[[5.1 3.5 1.4 1.2625 ]\n [4.9 3. 1.4 0.2 ]\n [4.7 3.06568627 3.81339286 1.2625 ]\n [5.82831858 3.1 3.81339286 0.2 ]\n [5.82831858 3.6 1.4 0.2 ]]\n" + ] + } + ], + "source": [ + "# 处理缺失值\n", + "iris = datasets.load_iris()\n", + "iris_X = iris.data\n", + "masking_array = np.random.binomial(1,0.3,iris_X.shape).astype(bool)\n", + "iris_X[masking_array] = np.nan\n", + "print(iris_X[:5,:5])\n", + "# 新版本有所改变,使用impute子库处理缺失值\n", + "from sklearn.impute import SimpleImputer\n", + "imp_mean = SimpleImputer(strategy='mean')\n", + "print(imp_mean.fit_transform(iris_X)[:5,:5])" + ] + }, + { + "source": [ + "## 1.8 用管线命令处理多个步骤" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 190, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[ nan nan -0.04127661 -0.55209683]\n [ 1.17699621 nan -0.04545117 -0.53006478]\n [-0.04127661 -0.04545117 0.63339002 nan]\n [-0.55209683 -0.53006478 0.00713861 0.95715395]]\n[[ 0.00000000e+00 0.00000000e+00 -5.23706644e-01 -1.37409352e+00]\n [ 1.97327379e+00 0.00000000e+00 -5.44938484e-01 -1.33350645e+00]\n [ 1.04969653e-02 7.52332130e-01 2.90765215e+00 -5.11308615e-17]\n [-8.12492816e-01 1.65691064e-01 -2.77466538e-01 1.40622325e+00]]\n" + ] + } + ], + "source": [ + "# 用管线处理多个步骤\n", + "mat = datasets.make_spd_matrix(10)\n", + "masking_array = np.random.binomial(1,0.1,mat.shape).astype(bool)\n", + "mat[masking_array] = np.nan\n", + "print(mat[:4,:4])\n", + "\n", + "# 新版本有所改变,使用impute子库处理缺失值\n", + "from sklearn.impute import SimpleImputer\n", + "imp_mean = SimpleImputer(strategy='mean')\n", + "scaler = preprocessing.StandardScaler()\n", + "\n", + "# 不用管线处理\n", + "# imp_mean.fit_transform(mat[:4,:4])\n", + "\n", + "# 使用pipline处理多个数据\n", + "from sklearn import pipeline\n", + "pip = pipeline.Pipeline([('impute',imp_mean),('scaler',scaler)])\n", + "\n", + "new_mat = pip.fit_transform(mat)\n", + "print(new_mat[:4,:4])" + ] + }, + { + "source": [ + "## 1.9 使用主成分分析降维\n", + "* 考虑的自变量对因变量产生影响的比例。\n", + "* 通过主成分分析,讲这种影响比例,进行交叉,保证各个影响因变量的自变量相互垂直。" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 204, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[0.92461872 0.05306648]\n[[-2.68412563 0.31939725]\n [-2.71414169 -0.17700123]\n [-2.88899057 -0.14494943]\n [-2.74534286 -0.31829898]\n [-2.72871654 0.32675451]]\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-03-21T22:00:27.564448\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.2, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "# 使用主成分分析\n", + "from sklearn import datasets\n", + "from sklearn import decomposition\n", + "iris = datasets.load_iris()\n", + "iris_X = iris.data\n", + "pca = decomposition.PCA(n_components=2)\n", + "iris_pca = pca.fit_transform(iris_X)\n", + "# 输出特征值\n", + "print(pca.explained_variance_ratio_)\n", + "# 输出降维后的特征向量\n", + "print(iris_pca[:5])\n", + "\n", + "from matplotlib import pyplot as plt\n", + "fig = plt.figure(figsize=(5,5))\n", + "ax = fig.add_subplot(111)\n", + "ax.scatter(iris_pca[:,0],iris_pca[:,1],c=iris.target)\n", + "ax.set_title(\"PCA 2 Components\")\n", + "\n", + "# pca还可以设置主成分保留的比例、不小于0.98\n", + "pca = decomposition.PCA(n_components=0.98)\n" + ] + }, + { + "source": [ + "## 1.10 用因子分析降维\n", + "* 自变量之间也存在某种隐含的关系。" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'fac 2 Components')" + ] + }, + "metadata": {}, + "execution_count": 206 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-03-21T22:06:10.017528\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.2, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "from sklearn import datasets\n", + "from sklearn import decomposition\n", + "iris = datasets.load_iris()\n", + "iris_X = iris.data\n", + "fac = decomposition.FactorAnalysis(n_components=2)\n", + "iris_fac = fac.fit_transform(iris.data)\n", + "iris_fac[:5]\n", + "\n", + "from matplotlib import pyplot as plt\n", + "fig = plt.figure(figsize=(5,5))\n", + "ax = fig.add_subplot(111)\n", + "ax.scatter(iris_fac[:,0],iris_fac[:,1],c=iris.target)\n", + "ax.set_title(\"fac 2 Components\")\n" + ] + }, + { + "source": [ + "## 1.11 用核PCA实现非线性降维" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "## 1.12 用截断奇异值分解降维" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "## 1.13 用字典学习分解法分类" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "## 1.14 用管线命令链接多个转换方法" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "## 1.15 用正泰随机过程处理回归" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "## 1.16 直接定义一个正太随机过程对象" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "## 1.17 用随机梯度下降处理回归" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 221, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-03-21T22:24:52.861138\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.2, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeUAAAFsCAYAAADyj6FyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAcO0lEQVR4nO3df7RXdZ3v8ec7QFGxQZQYghxojROigY4H8VdclcEfaUqaDo7NYFcWc9OZrG42VpZorHXtLtetUNfi+mNGbPytNZpmRkxWU1cTFAxFL+BowKgQiYGpA/K+f3w33K94jud7fn/OOc/HWmed7977s/d+f87+cl5n//h+iMxEkiT1vPf0dAGSJKnGUJYkqRCGsiRJhTCUJUkqhKEsSVIhDGVJkgphKEt9TEScGxE/epflD0fErE7Yz7ERsbaj25H0/xnKUg+LiOcj4vWI2BIRL0XETRExpL3by8xbMvOEzqxRUvcwlKUyfCwzhwCHAIcCX+rZciT1BENZKkhmvgQ8RC2ciYgjIuKXEbEpIpZFxLE72kbEeRHxXERsjoh/j4hz6+b/W127aRHxTES8GhHXAFG3bE5E/HPd9JiIyIgYWE1/KiJWVPt4LiL+tqXaI+IfImJd1fbZiJjaWT8Xqb8wlKWCRMRo4GRgVUSMAh4A5gLDgC8A90TE8IjYC5gHnJyZewNHAUub2d5+wHeBS4H9gNXA0W0oaT1wKvBe4FPANyPiz5vZz4eAvwMmVfWcCDzfhv1IwlCWSvEvEbEZWEMtCC8DPgn8IDN/kJnbM3MhsBj4aLXOduDgiNgjM1/MzKea2e5Hgacy8+7M3Ap8C3ip0aIy84HMXJ01PwV+BHykmaZvAbsD4yNiUGY+n5mrG92PpBpDWSrD9OoM81hgHLWz2j8BzqouXW+KiE3AMcDIzHwN+EvgvwEvRsQDETGume2+n1rQA5C1/4FmTTPtmhURJ0fEIxHxu2r/H61qe5vMXAV8FpgDrI+I2yPi/Y3uR1KNoSwVpDobvQm4ilp4ficzh9Z97ZWZV1ZtH8rMacBI4Bng+mY2+SLwgR0TERH108BrwJ51039c13Z34J6qlhGZORT4AXX3pHep/dbMPIbaHxMJfKMNXZeEoSyV6FvANOCXwMci4sSIGBARg6vPBo+OiBERcXp1b/lNYAu1y9m7egA4KCLOqB7e+gx1wUvtPvSUiNg/Iv6Itz/1vRu1S9IbgG0RcTLQ7EetIuJDEXF8FeRvAK+3UI+kd2EoS4XJzA3AzdQC9HTgy9SCcQ1wMbV/t+8BPg/8B/A74L8An25mW78FzgKuBDYCBwC/qFu+ELgDeBJYAtxft2xzVcOdwCvAXwH3tVD27tU+fkvtnvX78GNdUptF7RaTJEnqaZ4pS5JUCENZkqRCGMqSJBXCUJYkqRADu3Nn++23X44ZM6Y7dylJUlGWLFny28wc3tyybg3lMWPGsHjx4u7cpSRJRYmIF1pa1tDl64gYGhF3V//TzIqIODIihkXEwohYWX3fp/NKliSp/2n0nvK3gR9m5jhgIrACuARYlJkHAIuqaUmS1E6thnI19N4U4EaAzPzPzNxEbaShBVWzBcD0rilRkqT+oZF7ymOpDfH3TxExkdpQfBdRG6D+xarNS8CI5laOiNnAbID999+/wwVLUl+1detW1q5dyxtvvNHTpagTDB48mNGjRzNo0KCG12kklAcCfw78fWY+GhHfZpdL1ZmZEdHseJ2ZeR1wHUBTU5NjekpSC9auXcvee+/NmDFjqP2HXuqtMpONGzeydu1axo4d2/B6jdxTXguszcxHq+m7qYX0yxExEqD6vr6NNUuS6rzxxhvsu+++BnIfEBHsu+++bb7q0WooZ+ZLwJqI+FA1ayrwNLX/LWZmNW8mcG+b9ixJegcDue9oz7Fs9HPKfw/cEhG7Ac8Bn6IW6HdGxPnAC8DZbd67JEnaqaFQzsylQFMzi6Z2ajWSpJ3mzOn+7Q0YMIAPf/jDbNu2jbFjx/Kd73yHoUOHtmk/ixcv5uabb2bevHnvWLZjEKn99tuvTdsEmDNnDkOGDOELX/hCq20ffvhhrrrqKu6///63zZ81axaf//znGT9+fJv33x0c+1qStNMee+zB0qVLWb58OcOGDePaa69t8zaampqaDeQS3HDDDV0ayNu2bevQ+oayJKlZRx55JOvWrQNg9erVnHTSSRx22GF85CMf4ZlnngHgrrvu4uCDD2bixIlMmTIFqJ2lnnrqqQBs3LiRE044gYMOOohZs2aRWfsQzvPPP8/BBx+8c19XXXUVc6pT+euvv55JkyYxceJEzjzzTP7whz+8o7Z58+Yxfvx4JkyYwIwZMxru07HHHrtzuOchQ4bwla98hYkTJ3LEEUfw8ssvA7BhwwbOPPNMJk2axKRJk/jFL34BwK9+9SuOPPJIDj30UI466iieffZZAG666SZOO+00jj/+eKZO7dgFZENZkvQOb731FosWLeK0004DYPbs2Vx99dUsWbKEq666igsuuACAK664goceeohly5Zx3333vWM7l19+OccccwxPPfUUH//4x/nNb37T6r7POOMMHnvsMZYtW8aBBx7IjTfe+I42V155JU888QRPPvkk8+fPb1cfX3vtNY444giWLVvGlClTuP766wG46KKL+NznPsdjjz3GPffcw6xZswAYN24cP//5z3niiSe44oor+PKXv7xzW48//jh33303P/3pT9tVyw7d+h9SSJLK9vrrr3PIIYewbt06DjzwQKZNm8aWLVv45S9/yVlnnbWz3ZtvvgnA0UcfzXnnncfZZ5/NGWec8Y7t/exnP+O73/0uAKeccgr77NP6f5OwfPlyLr30UjZt2sSWLVs48cQT39FmwoQJnHvuuUyfPp3p06e3q6+77bbbzjP6ww47jIULFwLw4x//mKeffnpnu9///vds2bKFV199lZkzZ7Jy5Uoigq1bt+5sM23aNIYNG9auOup5pixJ2mnHPeUXXniBzOTaa69l+/btDB06lKVLl+78WrFiBQDz589n7ty5rFmzhsMOO4yNGzc2tJ+BAweyffv2ndP1n+c977zzuOaaa/j1r3/NZZdd1uxnfR944AEuvPBCHn/8cSZNmtSue7mDBg3a+bGlAQMG7NzG9u3beeSRR3b2dd26dQwZMoSvfvWrHHfccSxfvpzvf//7b6trr732avP+m+OZstTPdPYTvV2hN9TY1+25557MmzeP6dOnc8EFFzB27FjuuusuzjrrLDKTJ598kokTJ7J69WomT57M5MmTefDBB1mzZs3btjNlyhRuvfVWLr30Uh588EFeeeUVAEaMGMH69evZuHEjQ4YM4f777+ekk04CYPPmzYwcOZKtW7dyyy23MGrUqLdtc/v27axZs4bjjjuOY445httvv50tW7a0+SnxlpxwwglcffXVXHzxxQAsXbqUQw45hFdffXVnLTfddFOn7GtXhrIkFaqn/zg59NBDmTBhArfddhu33HILn/70p5k7dy5bt25lxowZTJw4kYsvvpiVK1eSmUydOpWJEye+7b7qZZddxjnnnMNBBx3EUUcdtfP/QBg0aBBf+9rXOPzwwxk1ahTjxo3b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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "from sklearn import datasets\n", + "X,y = datasets.make_regression(int(1e3))\n", + "\n", + "import numpy as np\n", + "from sklearn import linear_model\n", + "sgd = linear_model.SGDRegressor()\n", + "train = np.random.choice([True,False],size=len(y),p=[.75,.25])\n", + "sgd.fit(X[train],y[train])\n", + "linear_preds = sgd.predict(X[~train])\n", + "\n", + "from matplotlib import pyplot as plt \n", + "f,ax = plt.subplots(figsize=(7,5))\n", + "f.tight_layout()\n", + "ax.hist(linear_preds - y[~train],label='Residuals Linear', color='b', alpha=.5);\n", + "ax.set_title(\"Residuals\")\n", + "ax.legend(loc='best');" + ] + } + ] +} \ No newline at end of file diff --git a/Sklearn/sklearn-cookbook-zh/4.ipynb b/Sklearn/sklearn-cookbook-zh/4.ipynb new file mode 100644 index 00000000..b8e2adea --- /dev/null +++ b/Sklearn/sklearn-cookbook-zh/4.ipynb @@ -0,0 +1,68 @@ +{ + "metadata": { + "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.8.0-final" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.8.0 64-bit", + "metadata": { + "interpreter": { + "hash": "38740d3277777e2cd7c6c2cc9d8addf5118fdf3f82b1b39231fd12aeac8aee8b" + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "## 4.1 使用决策树实现基本的分裂" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[ True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True True True True True True True True True\n True True True True]\n" + ] + } + ], + "source": [ + "# 生成准备的分类数据\n", + "from sklearn import datasets\n", + "X,y = datasets.make_classification(n_samples=1000,n_features=3,n_redundant=0)\n", + "\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "dt = DecisionTreeClassifier()\n", + "dt.fit(X,y)\n", + "preds = dt.predict(X)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ] +} \ No newline at end of file