├── .gitignore ├── AcademicTrends ├── Task1 论文数据统计.ipynb ├── Task1 论文数据统计.md ├── Task2 论文作者统计.ipynb ├── Task2 论文作者统计.md ├── Task3 论文代码统计.ipynb ├── Task3 论文代码统计.md ├── Task4 论文种类分类.ipynb ├── Task4 论文种类分类.md ├── Task5 作者信息关联.ipynb ├── Task5 作者信息关联.md ├── img │ ├── task1_image1.png │ ├── task1_image2.png │ ├── task1_image3.png │ ├── task1_image4.png │ ├── task2_image1.png │ ├── task2_image2.png │ ├── task3_image1.png │ ├── task3_image2.png │ ├── task5_image1.png │ └── task5_image2.png └── readme.md ├── AnomalyDetection ├── img │ ├── 5k1sASfi9gVpcrt6bCpE8ac-7XGQlEhRydpM7L2EHZM.original.fullsize.png │ ├── APsWDfG-1NDc-z--7wVPsBICFs7Vvwt0v3T7VZwGvxg.original.fullsize.png │ ├── EVHASE85aZeCS43XNaCfsDK6DOJk-WOhXv7KHwo0EoA.original.fullsize.png │ ├── He6GRseNHy5vCD28xNr5O4wIMSBYC_CMmpmjmWTocg8.original.fullsize.png │ ├── N47Ra3UY3ONpe6opMQoM-LjiauCBqRHf9jISb2yk2As.original.fullsize.png │ ├── UWiX5C7kCHx5yX7O9yQm9F1ndg-QgMqS3BAwIWPB40k.original.fullsize-1609839833441.png │ ├── UWiX5C7kCHx5yX7O9yQm9F1ndg-QgMqS3BAwIWPB40k.original.fullsize.png │ ├── cTjP7hnGGCB-h8sfZLCJio9oqUYvs-sdoxpSRtoGCjE.original.fullsize.png │ ├── fOfAz4nhVr7COjlNqCN_AxWiZgVElfaJq6SS8uSjBR4.original.fullsize.png │ ├── image-20210103174850565.png │ ├── image-20210103174904734.png │ ├── image-20210103182254793.png │ ├── image-20210103183909407.png │ ├── image-20210104144520790.png │ ├── image-20210104144603849.png │ ├── image-20210104150718935.png │ ├── image-20210105140222697-1609839336763.png │ ├── image-20210105140222697.png │ ├── image-20210105140242611-1609839375267.png │ ├── image-20210105140242611.png │ ├── image-20210505101703601.png │ ├── image-20210506144705398.png │ ├── output_28_0-1609839842623.png │ ├── output_28_0.png │ ├── output_32_0-1609839844832.png │ ├── output_32_0.png │ ├── v2-bb94bcf07ced88315d0a5de47677200e_720w.png │ ├── xQz5G5vBRHR6PIT6oUEnnPZ1hV5ccszHuX_Fya9R6sQ.original.fullsize.png │ ├── 图4.1距离检测的困境-离群点A-1609839836032.png │ ├── 图4.1距离检测的困境-离群点A.png │ ├── 定义3-邻域半径-1609839837759.png │ ├── 定义3-邻域半径.png │ ├── 局部异常因子公式-1609839840015.png │ └── 局部异常因子公式.png ├── readme.md ├── 一、概述.md ├── 三、线性模型.md ├── 二、基于统计学的方法.md ├── 五、集成方法.md ├── 四、基于邻近度的方法.md └── 附录.md ├── CityManagement └── readme.md ├── ECommerceSearch └── readme.md ├── EnsembleLearning ├── CH2-机器学习基础模型回顾 │ ├── 1.1.png │ ├── 1.10.png │ ├── 1.11.png │ ├── 1.12.png │ ├── 1.13.png │ ├── 1.14.png │ ├── 1.15.png │ ├── 1.16.png │ ├── 1.17.png │ ├── 1.18.png │ ├── 1.19.png │ ├── 1.2.png │ ├── 1.20.png │ ├── 1.21.png │ ├── 1.22.png │ ├── 1.23.png │ ├── 1.24.png │ ├── 1.25.png │ ├── 1.26.png │ ├── 1.27.png │ ├── 1.28.png │ ├── 1.29.png │ ├── 1.3.png │ ├── 1.30.png │ ├── 1.4.png │ ├── 1.5.png │ ├── 1.6.1.png │ ├── 1.6.2.png │ ├── 1.6.png │ ├── 1.7.png │ ├── 1.8.png │ ├── 1.9.1.png │ ├── 1.9.2.png │ └── 第二章:机器学习基础.ipynb ├── CH3-集成学习之投票法与bagging │ ├── CH3(20210412).ipynb │ ├── DecisionTree.png │ ├── RandomForest.png │ └── Standalone-Models-for-Binary-Classification.png ├── CH4-集成学习之boosting │ ├── 0001.model │ ├── 1.png │ ├── 10.png │ ├── 11.png │ ├── 12.png │ ├── 13.png │ ├── 14.png │ ├── 15.png │ ├── 16.png │ ├── 17.png │ ├── 18.png │ ├── 19.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ ├── Boosting2.ipynb │ ├── dump.raw.txt │ ├── 内存使用量.png │ ├── 准确率对比.png │ └── 速度对比.png ├── CH5-集成学习之blending与stacking │ ├── 1.png │ ├── 2.png │ ├── 3.jpg │ ├── 4.jpg │ ├── 5.png │ └── Stacking.ipynb ├── CH6-集成学习之案例分享 │ ├── 集成学习案例分析1 │ │ ├── .ipynb_checkpoints │ │ │ └── 集成学习-案例分析-杨毅远-checkpoint.ipynb │ │ ├── index.xlsx │ │ ├── submision.csv │ │ ├── submit_example.csv │ │ ├── survey.pdf │ │ ├── test.csv │ │ ├── train.csv │ │ └── 集成学习-案例分析1.ipynb │ └── 集成学习案例分析2 │ │ ├── predict.txt │ │ ├── test.txt │ │ ├── train.txt │ │ └── 集成学习-案例分析2.ipynb └── readme.md ├── FinancialRiskControl ├── Task1 赛题理解.md ├── Task2 数据分析.md ├── Task3 特征工程.md ├── Task4 建模调参.md ├── Task5 模型融合.md ├── baseline.md ├── readme.md └── 直播PPT │ ├── 贷款违约预测_建模调参与模型融合.pdf │ ├── 贷款违约预测_数据探索性分析和特征工程.pdf │ └── 贷款违约预测_赛题理解与基线方案.pptx ├── HandsOnDataAnalysis └── readme.md ├── HeartbeatClassification ├── Task1 赛题理解.md ├── Task2 数据分析.md ├── Task3 特征工程.md ├── Task4 模型调参.md ├── Task5 模型融合.md ├── baseline.ipynb ├── baseline.md └── readme.md ├── IntelligentComputing └── 粒子群算法_Matlab.txt ├── IntroductionExperienceAI └── readme.md ├── LinearAlgebra ├── 第01章 线性方程组 │ ├── 1.1 线性方程组的消元法.md │ ├── 1.1 线性方程组的消元法.pdf │ ├── 1.2 方程组与矩阵.md │ ├── 1.2 方程组与矩阵.pdf │ ├── 1.3 矩阵的秩及方程组解的判别.md │ └── 1.3 矩阵的秩及方程组解的判别.pdf ├── 第02章 矩阵及其运算 │ ├── 2.1 矩阵的基本运算.md │ ├── 2.1 矩阵的基本运算.pdf │ ├── 2.2 分块矩阵及运算.md │ ├── 2.2 分块矩阵及运算.pdf │ ├── 2.3 逆矩阵.md │ ├── 2.3 逆矩阵.pdf │ ├── 2.4 方阵的行列式.md │ ├── 2.4 方阵的行列式.pdf │ ├── 2.5 矩阵LU分解.md │ └── 2.5 矩阵LU分解.pdf └── 第03章 向量空间 │ ├── 3.1 基本概念.md │ ├── 3.1 基本概念.pdf │ ├── 3.2 线性相关与线性无关.md │ ├── 3.2 线性相关与线性无关.pdf │ ├── 3.3 向量空间的基与维数,坐标,过渡矩阵.md │ ├── 3.3 向量空间的基与维数,坐标,过渡矩阵.pdf │ ├── 3.4 矩阵的零空间,列空间,线性方程组解的结构.md │ ├── 3.4 矩阵的零空间,列空间,线性方程组解的结构.pdf │ ├── 3.5 向量的内积和正交阵.md │ └── 3.5 向量的内积和正交阵.pdf ├── MachineLearningFundamentals ├── 01 ml_overvirew.md ├── 02 Linear_regression.ipynb ├── 03 Logistic_regression.ipynb ├── 04 Decision_tree.ipynb ├── 05 Cluster_plus.ipynb ├── 06 Bayes_plus.ipynb ├── 07 Knn.ipynb ├── 08 EM.ipynb ├── 09 条件随机场.ipynb ├── 10 Svm.md ├── data │ ├── datingTestSet2.txt │ ├── logistic_x.txt │ └── logistic_y.txt ├── img │ ├── 1.png │ ├── 2.png │ ├── download.png │ ├── download1.png │ ├── download2.png │ ├── 前向后向1.png │ ├── 前向后向10.png │ ├── 前向后向2.png │ ├── 前向后向3.png │ ├── 前向后向4.png │ ├── 前向后向5.png │ ├── 前向后向6.png │ ├── 前向后向7.png │ ├── 前向后向8.png │ ├── 前向后向9.png │ ├── 学习问题1.png │ ├── 学习问题2.png │ ├── 条件随机场.png │ ├── 简化形式1.png │ ├── 简化形式2.png │ ├── 简化形式3.png │ ├── 简化形式4.png │ ├── 简化形式5.png │ ├── 简化形式6.png │ ├── 隐马尔科夫算法.png │ ├── 预测1.png │ ├── 预测10.png │ ├── 预测11.png │ ├── 预测2.png │ ├── 预测3.png │ ├── 预测4.png │ ├── 预测5.png │ ├── 预测6.png │ ├── 预测8.png │ ├── 预测9.png │ └── 马尔可夫过程.png ├── readme.md ├── 奇异值分解(SVD)及其应用.md ├── 机器学习中的特征工程总结.md └── 机器学习算法分类知识总结.md ├── Mathematics └── readme.md ├── MatrixAnalysis └── README.md ├── MemberOperations ├── XX1.png ├── XX2.png ├── courses.ipynb ├── image (1).png ├── image (2).png ├── image (3).png ├── image (4).png ├── image (5).png ├── image (6).png ├── image.png ├── readme.md └── sales.xlsx ├── NeuralNetwork ├── GNN 教程:Graph 基础知识.md ├── GNN教程:GCN介绍.md ├── readme.md ├── 人工神经网络背后的数学原理.md └── 神经网络知识专题总结.md ├── ProbabilityStatistics ├── 01 随机事件与随机变量.md ├── 02 数理统计与描述性统计.md ├── 03 常见分布与假设检验.md ├── 04 方差分析.md ├── figures_ANOVA │ ├── 2-1.png │ ├── 2-2.png │ ├── 2-3.png │ ├── 3-1.png │ ├── 3-2.png │ └── 3-3.png ├── readme.md └── tupian │ ├── 3西格玛原则.png │ ├── binomial.png │ ├── continuousoverall.PNG │ ├── debug.log │ ├── discreteoverall.PNG │ ├── expo.png │ ├── expo2.png │ ├── normal.png │ ├── poisson.png │ ├── poisson2.png │ ├── uniform.png │ ├── uniform2.png │ ├── 下载.jpg │ ├── 中位数公式.png │ ├── 举个例子.jpg │ ├── 举个栗子.png │ ├── 偏态与峰度.png │ ├── 分布函数与密度函数.png │ ├── 分布函数与密度函数的关系.png │ ├── 变异系数公式.png │ ├── 平均数公式.png │ ├── 方差例子.gif │ ├── 标准正态分布.png │ ├── 样本偏度系数公式.png │ ├── 样本峰度系数.png │ ├── 样本方差公式.png │ ├── 样本极差公式.png │ ├── 样本标准差公式.png │ ├── 概率分布函数定义.png │ ├── 正态分布公式.png │ ├── 正态分布图.png │ ├── 正态分布表示.png │ ├── 百分位数.png │ ├── 百分位数图.png │ ├── 百分位数图0.png │ ├── 线性.png │ ├── 线性回归原理图.png │ ├── 自我介绍.png │ ├── 解方程步骤.png │ ├── 逻辑.png │ └── 非线性.png ├── PurchaseAndRedemptionForecast ├── 01 数据探索与分析.ipynb ├── 02 数据探索与分析.ipynb ├── 03 时间序列规则.ipynb ├── 04 时间序列模型-R语言.ipynb ├── 05 特征工程.ipynb ├── 06 建模预测.ipynb └── README.md ├── RentForecast ├── Task1 赛题分析.ipynb ├── Task2 数据清洗.ipynb ├── Task3 特征工程.ipynb ├── Task4 模型选择.ipynb ├── Task5 模型融合.ipynb ├── Task6 竞赛整理.ipynb ├── readme.md └── 数据集 │ ├── test_a.csv │ ├── train_data.csv │ ├── 数据集字段说明.csv │ └── 评分文件 │ └── sub_a_913.csv ├── SecondHandCarPriceForecast ├── Baseline.md ├── Task1 赛题理解.md ├── Task2 数据分析.md ├── Task3 特征工程.md ├── Task4 建模调参 .md ├── Task5 模型融合.md ├── data │ ├── used_car_sample_submit.csv │ ├── used_car_testA_20200313.zip │ ├── used_car_train_20200313.zip │ └── 数据说明.txt └── readme.md ├── TimeSeries ├── ARMA 时间序列模型与预测.md ├── ARMA时间序列用到的数据集 │ ├── population.csv │ ├── readme.md │ └── 人口普查.xlsx ├── R 语言基础.md ├── Time Series Analysis.pdf ├── readme.md ├── typora-user-images │ ├── image-20210922175847365.png │ ├── image-20210922180552465.png │ ├── image-20210922185944045.png │ ├── image-20210922191248078.png │ ├── image-20210923195745948.png │ ├── image-20210923200033331.png │ ├── image-20210924203402681.png │ ├── image-20210924204531153.png │ ├── image-20210924205843412.png │ ├── image-20210924211135207.png │ ├── image-20210924211220048.png │ └── image-20210924211736213.png ├── 手算时间序列.md ├── 时间序列参考网课与教材.md └── 统计与时间序列分析基础.md ├── WeatherOceanForecasts ├── 1.TC AI Earth Baseline.ipynb ├── 1.TC AI Earth Baseline.md ├── 2.Docker提交.ipynb ├── 2.Docker提交.md ├── README.md ├── baseline相关.md ├── code │ └── mlp_predict.py ├── pic │ ├── 1st.jpeg │ ├── 2nd.jpeg │ ├── 3rd.jpeg │ ├── first_step.jpeg │ ├── logo.jpg │ ├── metric.jpg │ ├── score.jpeg │ ├── second_step.jpeg │ └── submit.jpeg ├── requirements.txt ├── run.sh └── user_data │ └── model_data │ └── model_mlp_baseline.h5 ├── readme.md └── wisdomOcean ├── .ipynb_checkpoints ├── Task1 地理数据分析常用工具-checkpoint.ipynb ├── Task2 数据分析-checkpoint.ipynb ├── Task3 特征工程-checkpoint.ipynb └── Task5 模型融合-checkpoint.ipynb ├── Task1 地理数据分析常用工具.ipynb ├── Task2 数据分析.ipynb ├── Task3 特征工程.ipynb ├── Task4 模型建立.ipynb ├── read_all_data.py ├── readme.md └── task5 模型融合.ipynb /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /AcademicTrends/Task2 论文作者统计.md: -------------------------------------------------------------------------------- 1 | # 任务2:论文作者统计 2 | 3 | ## 2.1 任务说明 4 | 5 | - 任务主题:论文作者统计,统计所有论文作者出现评率Top10的姓名; 6 | - 任务内容:论文作者的统计、使用 **Pandas** 读取数据并使用字符串操作; 7 | - 任务成果:学习 **Pandas** 的字符串操作; 8 | 9 | ## 2.2 数据处理步骤 10 | 11 | 在原始arxiv数据集中论文作者`authors`字段是一个字符串格式,其中每个作者使用逗号进行分隔分,所以我们我们首先需要完成以下步骤: 12 | 13 | - 使用逗号对作者进行切分; 14 | - 剔除单个作者中非常规的字符; 15 | 16 | 具体操作可以参考以下例子: 17 | 18 | ``` 19 | C. Bal\\'azs, E. L. Berger, P. M. Nadolsky, C.-P. Yuan 20 | 21 | # 切分为,其中\\为转义符 22 | 23 | C. Ba'lazs 24 | E. L. Berger 25 | P. M. Nadolsky 26 | C.-P. Yuan 27 | ``` 28 | 29 | 当然在原始数据集中`authors_parsed`字段已经帮我们处理好了作者信息,可以直接使用该字段完成后续统计。 30 | 31 | ## 2.3 字符串处理 32 | 33 | 在Python中字符串是最常用的数据类型,可以使用引号('或")来创建字符串。Python中所有的字符都使用字符串存储,可以使用方括号来截取字符串,如下实例: 34 | 35 | ```python 36 | var1 = 'Hello Datawhale!' 37 | var2 = "Python Everwhere!" 38 | 39 | print("var1[-10:]: ", var1[-10:]) 40 | print("var2[1:5]: ", var2[0:7]) 41 | ``` 42 | 43 | 执行结果为: 44 | 45 | ``` 46 | var1[-10:]: Datawhale! 47 | var2[1:5]: Python 48 | ``` 49 | 50 | 同时在Python中还支持转义符: 51 | 52 | | \(在行尾时) | 续行符 | 53 | | ----------- | ---------- | 54 | | \\ | 反斜杠符号 | 55 | | \' | 单引号 | 56 | | \" | 双引号 | 57 | | \n | 换行 | 58 | | \t | 横向制表符 | 59 | | \r | 回车 | 60 | 61 | Python中还内置了很多内置函数,非常方便使用: 62 | 63 | | **方法** | **描述** | 64 | | :------------------ | :----------------------------------------------------------- | 65 | | string.capitalize() | 把字符串的第一个字符大写 | 66 | | string.isalpha() | 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False | 67 | | string.title() | 返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) | 68 | | string.upper() | 转换 string 中的小写字母为大写 | 69 | 70 | ## 2.4 具体代码实现以及讲解 71 | 72 | ### 2.4.1 数据读取 73 | 74 | ```python 75 | data = [] 76 | with open("arxiv-metadata-oai-snapshot.json", 'r') as f: 77 | for idx, line in enumerate(f): 78 | d = json.loads(line) 79 | d = {'authors': d['authors'], 'categories': d['categories'], 'authors_parsed': d['authors_parsed']} 80 | data.append(d) 81 | 82 | data = pd.DataFrame(data) 83 | ``` 84 | 85 | 为了方便处理数据,我们只选择了三个字段进行读取。 86 | 87 | ### 2.4.2 数据统计 88 | 89 | 接下来我们将完成以下统计操作: 90 | 91 | - 统计所有作者姓名出现频率的Top10; 92 | - 统计所有作者姓(姓名最后一个单词)的出现频率的Top10; 93 | - 统计所有作者姓第一个字符的评率; 94 | 95 | 为了节约计算时间,下面选择部分类别下的论文进行处理: 96 | 97 | ```python 98 | # 选择类别为cs.CV下面的论文 99 | data2 = data[data['categories'].apply(lambda x: 'cs.CV' in x)] 100 | 101 | # 拼接所有作者 102 | all_authors = sum(data2['authors_parsed'], []) 103 | ``` 104 | 105 | 处理完成后`all_authors`变成了所有一个list,其中每个元素为一个作者的姓名。我们首先来完成姓名频率的统计。 106 | 107 | ```python 108 | # 拼接所有的作者 109 | authors_names = [' '.join(x) for x in all_authors] 110 | authors_names = pd.DataFrame(authors_names) 111 | 112 | # 根据作者频率绘制直方图 113 | plt.figure(figsize=(10, 6)) 114 | authors_names[0].value_counts().head(10).plot(kind='barh') 115 | 116 | # 修改图配置 117 | names = authors_names[0].value_counts().index.values[:10] 118 | _ = plt.yticks(range(0, len(names)), names) 119 | plt.ylabel('Author') 120 | plt.xlabel('Count') 121 | ``` 122 | 123 | 绘制得到的结果: 124 | 125 | task2_image1 126 | 127 | 接下来统计姓名姓,也就是`authors_parsed`字段中作者第一个单词: 128 | 129 | ```python 130 | authors_lastnames = [x[0] for x in all_authors] 131 | authors_lastnames = pd.DataFrame(authors_lastnames) 132 | 133 | plt.figure(figsize=(10, 6)) 134 | authors_lastnames[0].value_counts().head(10).plot(kind='barh') 135 | 136 | names = authors_lastnames[0].value_counts().index.values[:10] 137 | _ = plt.yticks(range(0, len(names)), names) 138 | plt.ylabel('Author') 139 | plt.xlabel('Count') 140 | ``` 141 | 142 | 绘制得到的结果,从结果看出这些都是华人或者中国姓氏~ 143 | 144 | task2_image2 145 | 146 | 统计所有作者姓第一个字符的评率,这个流程与上述的类似,同学们可以自行尝试。 147 | -------------------------------------------------------------------------------- /AcademicTrends/Task3 论文代码统计.md: -------------------------------------------------------------------------------- 1 | # 任务3:论文代码统计 2 | 3 | ## 3.1 任务说明 4 | 5 | - 任务主题:论文代码统计,统计所有论文出现代码的相关统计; 6 | - 任务内容:使用正则表达式统计代码连接、页数和图表数据; 7 | - 任务成果:学习正则表达式统计; 8 | 9 | ## 3.2 数据处理步骤 10 | 11 | 在原始arxiv数据集中作者经常会在论文的`comments`或`abstract`字段中给出具体的代码链接,所以我们需要从这些字段里面找出代码的链接。 12 | 13 | - 确定数据出现的位置; 14 | - 使用正则表达式完成匹配; 15 | - 完成相关的统计; 16 | 17 | ## 3.3 正则表达式 18 | 19 | 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 20 | 21 | #### 3.3.1 普通字符:大写和小写字母、所有数字、所有标点符号和一些其他符号 22 | 23 | | 字符 | 描述 | 24 | | ---------- | ------------------------------------------------------------ | 25 | | **[ABC]** | 匹配 [...] 中的所有字符,例如 [aeiou] 匹配字符串 "google runoob taobao" 中所有的 e o u a 字母。 | 26 | | **[^ABC]** | 匹配除了 **[...]** 中字符的所有字符,例如 **[^aeiou]** 匹配字符串 "google runoob taobao" 中除了 e o u a 字母的所有字母。 | 27 | | **[A-Z]** | [A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。 | 28 | | . | 匹配除换行符(\n、\r)之外的任何单个字符,相等于 **[^\n\r]**。 | 29 | | **[\s\S]** | 匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,包括换行。 | 30 | | **\w** | 匹配字母、数字、下划线。等价于 [A-Za-z0-9_] | 31 | 32 | #### 3.3.2 特殊字符:有特殊含义的字符 33 | 34 | | 特别字符 | 描述 | 35 | | :------- | :----------------------------------------------------------- | 36 | | ( ) | 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。 | 37 | | * | 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 | 38 | | + | 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 | 39 | | . | 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。 | 40 | | [ | 标记一个中括号表达式的开始。要匹配 [,请使用 \[。 | 41 | | ? | 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。 | 42 | | \ | 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。 | 43 | | ^ | 匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 \^。 | 44 | | { | 标记限定符表达式的开始。要匹配 {,请使用 \{。 | 45 | | \| | 指明两项之间的一个选择。要匹配 \|,请使用 \|。 | 46 | 47 | #### 3.3.3 限定符 48 | 49 | | 字符 | 描述 | 50 | | :---- | :----------------------------------------------------------- | 51 | | * | 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。 | 52 | | + | 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 | 53 | | ? | 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do" 。? 等价于 {0,1}。 | 54 | | {n} | n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。 | 55 | | {n,} | n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。 | 56 | | {n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。 | 57 | 58 | ## 3.4 具体代码实现以及讲解 59 | 60 | 首先我们来统计论文页数,也就是在`comments`字段中抽取pages和figures和个数,首先完成字段读取。 61 | 62 | ```python 63 | data = [] #初始化 64 | #使用with语句优势:1.自动关闭文件句柄;2.自动显示(处理)文件读取数据异常 65 | with open("arxiv-metadata-oai-snapshot.json", 'r') as f: 66 | for idx, line in enumerate(f): 67 | d = json.loads(line) 68 | d = {'abstract': d['abstract'], 'categories': d['categories'], 'comments': d['comments']} 69 | data.append(d) 70 | 71 | data = pd.DataFrame(data) #将list变为dataframe格式,方便使用pandas进行分析 72 | ``` 73 | 74 | 对pages进行抽取: 75 | 76 | ```python 77 | # 使用正则表达式匹配,XX pages 78 | data['pages'] = data['comments'].apply(lambda x: re.findall('[1-9][0-9]* pages', str(x))) 79 | 80 | # 筛选出有pages的论文 81 | data = data[data['pages'].apply(len) > 0] 82 | 83 | # 由于匹配得到的是一个list,如['19 pages'],需要进行转换 84 | data['pages'] = data['pages'].apply(lambda x: float(x[0].replace(' pages', ''))) 85 | ``` 86 | 87 | 对pages进行统计: 88 | 89 | ```python 90 | data['pages'].describe().astype(int) 91 | ``` 92 | 93 | 统计结果如下:论文平均的页数为17页,75%的论文在22页以内,最长的论文有11232页。 94 | 95 | ```python 96 | count 1089180 97 | mean 17 98 | std 22 99 | min 1 100 | 25% 8 101 | 50% 13 102 | 75% 22 103 | max 11232 104 | Name: pages, dtype: int64 105 | ``` 106 | 107 | 接下来按照分类统计论文页数,选取了论文的第一个类别的主要类别: 108 | 109 | ```python 110 | # 选择主要类别 111 | data['categories'] = data['categories'].apply(lambda x: x.split(' ')[0]) 112 | data['categories'] = data['categories'].apply(lambda x: x.split('.')[0]) 113 | 114 | # 每类论文的平均页数 115 | plt.figure(figsize=(12, 6)) 116 | data.groupby(['categories'])['pages'].mean().plot(kind='bar') 117 | ``` 118 | 119 | task3_image1 120 | 121 | 接下来对论文图表个数进行抽取: 122 | 123 | ```python 124 | data['figures'] = data['comments'].apply(lambda x: re.findall('[1-9][0-9]* figures', str(x))) 125 | data = data[data['figures'].apply(len) > 0] 126 | data['figures'] = data['figures'].apply(lambda x: float(x[0].replace(' figures', ''))) 127 | ``` 128 | 129 | 最后我们对论文的代码链接进行提取,为了简化任务我们只抽取github链接: 130 | 131 | ```python 132 | # 筛选包含github的论文 133 | data_with_code = data[ 134 | (data.comments.str.contains('github')==True)| 135 | (data.abstract.str.contains('github')==True) 136 | ] 137 | data_with_code['text'] = data_with_code['abstract'].fillna('') + data_with_code['comments'].fillna('') 138 | 139 | # 使用正则表达式匹配论文 140 | pattern = '[a-zA-z]+://github[^\s]*' 141 | data_with_code['code_flag'] = data_with_code['text'].str.findall(pattern).apply(len) 142 | ``` 143 | 144 | 并对论文按照类别进行绘图: 145 | 146 | ```python 147 | data_with_code = data_with_code[data_with_code['code_flag'] == 1] 148 | plt.figure(figsize=(12, 6)) 149 | data_with_code.groupby(['categories'])['code_flag'].count().plot(kind='bar') 150 | ``` 151 | 152 | task3_image2 153 | -------------------------------------------------------------------------------- /AcademicTrends/Task4 论文种类分类.md: -------------------------------------------------------------------------------- 1 | # 任务4:论文种类分类 2 | 3 | ## 4.1 任务说明 4 | 5 | - 学习主题:论文分类(数据建模任务),利用已有数据建模,对新论文进行类别分类; 6 | - 学习内容:使用论文标题完成类别分类; 7 | - 学习成果:学会文本分类的基本方法、`TF-IDF`等; 8 | 9 | ## 4.2 数据处理步骤 10 | 11 | 在原始arxiv论文中论文都有对应的类别,而论文类别是作者填写的。在本次任务中我们可以借助论文的标题和摘要完成: 12 | 13 | - 对论文标题和摘要进行处理; 14 | - 对论文类别进行处理; 15 | - 构建文本分类模型; 16 | 17 | ## 4.3 文本分类思路 18 | 19 | - 思路1:TF-IDF+机器学习分类器 20 | 21 | 直接使用TF-IDF对文本提取特征,使用分类器进行分类,分类器的选择上可以使用SVM、LR、XGboost等 22 | 23 | - 思路2:FastText 24 | 25 | FastText是入门款的词向量,利用Facebook提供的FastText工具,可以快速构建分类器 26 | 27 | - 思路3:WordVec+深度学习分类器 28 | 29 | WordVec是进阶款的词向量,并通过构建深度学习分类完成分类。深度学习分类的网络结构可以选择TextCNN、TextRnn或者BiLSTM。 30 | 31 | - 思路4:Bert词向量 32 | 33 | Bert是高配款的词向量,具有强大的建模学习能力。 34 | 35 | ## 4.4 具体代码实现以及讲解 36 | 37 | 为了方便大家入门文本分类,我们选择思路1和思路2给大家讲解。首先完成字段读取: 38 | 39 | ```python 40 | data = [] #初始化 41 | #使用with语句优势:1.自动关闭文件句柄;2.自动显示(处理)文件读取数据异常 42 | with open("arxiv-metadata-oai-snapshot.json", 'r') as f: 43 | for idx, line in enumerate(f): 44 | d = json.loads(line) 45 | d = {'title': d['title'], 'categories': d['categories'], 'abstract': d['abstract']} 46 | data.append(d) 47 | 48 | # 选择部分数据 49 | if idx > 200000: 50 | break 51 | 52 | data = pd.DataFrame(data) #将list变为dataframe格式,方便使用pandas进行分析 53 | ``` 54 | 55 | 为了方便数据的处理,我们可以将标题和摘要拼接一起完成分类。 56 | 57 | ```python 58 | data['text'] = data['title'] + data['abstract'] 59 | 60 | data['text'] = data['text'].apply(lambda x: x.replace('\n',' ')) 61 | data['text'] = data['text'].apply(lambda x: x.lower()) 62 | data = data.drop(['abstract', 'title'], axis=1) 63 | ``` 64 | 65 | 由于原始论文有可能有多个类别,所以也需要处理: 66 | 67 | ```python 68 | # 多个类别,包含子分类 69 | data['categories'] = data['categories'].apply(lambda x : x.split(' ')) 70 | 71 | # 单个类别,不包含子分类 72 | data['categories_big'] = data['categories'].apply(lambda x : [xx.split('.')[0] for xx in x]) 73 | ``` 74 | 75 | 然后将类别进行编码,这里类别是多个,所以需要多编码: 76 | 77 | ```python 78 | from sklearn.preprocessing import MultiLabelBinarizer 79 | mlb = MultiLabelBinarizer() 80 | data_label = mlb.fit_transform(data['categories_big'].iloc[:]) 81 | ``` 82 | 83 | ### 4.4.1 思路1 84 | 85 | 思路1使用TFIDF提取特征,限制最多4000个单词: 86 | 87 | ```python 88 | from sklearn.feature_extraction.text import TfidfVectorizer 89 | vectorizer = TfidfVectorizer(max_features=4000) 90 | data_tfidf = vectorizer.fit_transform(data['text'].iloc[:]) 91 | ``` 92 | 93 | 由于这里是多标签分类,可以使用sklearn的多标签分类进行封装: 94 | 95 | ```python 96 | # 划分训练集和验证集 97 | from sklearn.model_selection import train_test_split 98 | x_train, x_test, y_train, y_test = train_test_split(data_tfidf, data_label, 99 | test_size = 0.2,random_state = 1) 100 | 101 | # 构建多标签分类模型 102 | from sklearn.multioutput import MultiOutputClassifier 103 | from sklearn.naive_bayes import MultinomialNB 104 | clf = MultiOutputClassifier(MultinomialNB()).fit(x_train, y_train) 105 | ``` 106 | 107 | 验证模型的精度: 108 | 109 | ```python 110 | from sklearn.metrics import classification_report 111 | print(classification_report(y_test, clf.predict(x_test))) 112 | ``` 113 | 114 | ### 4.4.2 思路2 115 | 116 | 思路2使用深度学习模型,单词进行词嵌入然后训练。首先按照文本划分数据集: 117 | 118 | ```python 119 | from sklearn.model_selection import train_test_split 120 | x_train, x_test, y_train, y_test = train_test_split(data['text'].iloc[:], data_label, 121 | test_size = 0.2,random_state = 1) 122 | ``` 123 | 124 | 将数据集处理进行编码,并进行截断: 125 | 126 | ```python 127 | # parameter 128 | max_features= 500 129 | max_len= 150 130 | embed_size=100 131 | batch_size = 128 132 | epochs = 5 133 | 134 | from keras.preprocessing.text import Tokenizer 135 | from keras.preprocessing import sequence 136 | 137 | tokens = Tokenizer(num_words = max_features) 138 | tokens.fit_on_texts(list(x_train)+list(x_test)) 139 | 140 | x_sub_train = tokens.texts_to_sequences(x_train) 141 | x_sub_test = tokens.texts_to_sequences(x_test) 142 | 143 | x_sub_train=sequence.pad_sequences(x_sub_train, maxlen=max_len) 144 | x_sub_test=sequence.pad_sequences(x_sub_test, maxlen=max_len) 145 | ``` 146 | 147 | 定义模型并完成训练: 148 | 149 | ```python 150 | # LSTM model 151 | # Keras Layers: 152 | from keras.layers import Dense,Input,LSTM,Bidirectional,Activation,Conv1D,GRU 153 | from keras.layers import Dropout,Embedding,GlobalMaxPooling1D, MaxPooling1D, Add, Flatten 154 | from keras.layers import GlobalAveragePooling1D, GlobalMaxPooling1D, concatenate, SpatialDropout1D# Keras Callback Functions: 155 | from keras.callbacks import Callback 156 | from keras.callbacks import EarlyStopping,ModelCheckpoint 157 | from keras import initializers, regularizers, constraints, optimizers, layers, callbacks 158 | from keras.models import Model 159 | from keras.optimizers import Adam 160 | 161 | sequence_input = Input(shape=(max_len, )) 162 | x = Embedding(max_features, embed_size,trainable = False)(sequence_input) 163 | x = SpatialDropout1D(0.2)(x) 164 | x = Bidirectional(GRU(128, return_sequences=True,dropout=0.1,recurrent_dropout=0.1))(x) 165 | x = Conv1D(64, kernel_size = 3, padding = "valid", kernel_initializer = "glorot_uniform")(x) 166 | avg_pool = GlobalAveragePooling1D()(x) 167 | max_pool = GlobalMaxPooling1D()(x) 168 | x = concatenate([avg_pool, max_pool]) 169 | preds = Dense(20, activation="sigmoid")(x) 170 | 171 | model = Model(sequence_input, preds) 172 | model.compile(loss='binary_crossentropy',optimizer=Adam(lr=1e-3),metrics=['accuracy']) 173 | model.fit(x_sub_train, y_train, batch_size=batch_size, epochs=epochs) 174 | ``` 175 | 176 | -------------------------------------------------------------------------------- /AcademicTrends/Task5 作者信息关联.md: -------------------------------------------------------------------------------- 1 | # 任务5:作者信息关联 2 | 3 | ## 5.1 任务说明 4 | 5 | - 学习主题:作者关联(数据建模任务),对论文作者关系进行建模,统计最常出现的作者关系; 6 | - 学习内容:构建作者关系图,挖掘作者关系 7 | - 学习成果:论文作者知识图谱、图关系挖掘 8 | 9 | ## 5.2 数据处理步骤 10 | 11 | 将作者列表进行处理,并完成统计。具体步骤如下: 12 | 13 | - 将论文第一作者与其他作者(论文非第一作者)构建图; 14 | - 使用图算法统计图中作者与其他作者的联系; 15 | 16 | ## 5.3 社交网络分析 17 | 18 | 图是复杂网络研究中的一个重要概念。Graph是用**点**和**线**来刻画离散事物集合中的每对事物间以某种方式相联系的数学模型。Graph在现实世界中随处可见,如交通运输图、旅游图、流程图等。利用图可以描述现实生活中的许多事物,如用点可以表示交叉口,点之间的连线表示路径,这样就可以轻而易举的描绘出一个交通运输网络。 19 | 20 | ### 5.3.1 图类型 21 | 22 | - 无向图,忽略了两节点间边的方向。 23 | 24 | - 指有向图,考虑了边的有向性。 25 | 26 | - 多重无向图,即两个结点之间的边数多于一条,又允许顶点通过同一条边和自己关联。 27 | 28 | ### 5.3.2 图统计指标 29 | 30 | - 度:是指和该节点相关联的边的条数,又称关联度。对于有向图,节点的入度 是指进入该节点的边的条数;节点的出度是指从该节点出发的边的条数; 31 | 32 | - 迪杰斯特拉路径:.从一个源点到其它各点的最短路径,可使用迪杰斯特拉算法来求最短路径; 33 | 34 | - 连通图:在一个无向图 G 中,若从顶点i到顶点j有路径相连,则称i和j是连通的。如果 G 是有向图,那么连接i和j的路径中所有的边都必须同向。如果图中任意两点都是连通的,那么图被称作连通图。如果此图是有向图,则称为强连通图。 35 | 36 | 对于其他图算法,可以在networkx和igraph两个库中找到。 37 | 38 | ## 5.4 具体代码以及讲解 39 | 40 | 首先读取我们想要的数据: 41 | 42 | ```python 43 | data = [] #初始化 44 | #使用with语句优势:1.自动关闭文件句柄;2.自动显示(处理)文件读取数据异常 45 | with open("arxiv-metadata-oai-snapshot.json", 'r') as f: 46 | for idx, line in enumerate(f): 47 | d = json.loads(line) 48 | d = {'authors_parsed': d['authors_parsed']} 49 | data.append(d) 50 | 51 | data = pd.DataFrame(data) #将list变为dataframe格式,方便使用pandas进行分析 52 | ``` 53 | 54 | 创建作者链接的无向图: 55 | 56 | ```python 57 | import networkx as nx 58 | # 创建无向图 59 | G = nx.Graph() 60 | 61 | # 只用五篇论文进行构建 62 | for row in data.iloc[:5].itertuples(): 63 | authors = row[1] 64 | authors = [' '.join(x[:-1]) for x in authors] 65 | 66 | # 第一个作者 与 其他作者链接 67 | for author in authors[1:]: 68 | G.add_edge(authors[0],author) # 添加节点2,3并链接23节点 69 | ``` 70 | 71 | 将作者关系图进行绘制: 72 | 73 | ```python 74 | nx.draw(G, with_labels=True) 75 | ``` 76 | 77 | task5_image1 78 | 79 | 得到作者之间的距离: 80 | 81 | ```python 82 | try: 83 | print(nx.dijkstra_path(G, 'Balázs C.', 'Ziambaras Eleni')) 84 | except: 85 | print('No path') 86 | ``` 87 | 88 | 如果我们500片论文构建图,则可以得到更加完整作者关系,并选择最大联通子图进行绘制,折线图为子图节点度值。 89 | 90 | ```python 91 | # 计算论文关系中有多少个联通子图 92 | print(len(nx.communicability(G))) 93 | 94 | plt.loglog(degree_sequence, "b-", marker="o") 95 | plt.title("Degree rank plot") 96 | plt.ylabel("degree") 97 | plt.xlabel("rank") 98 | 99 | # draw graph in inset 100 | plt.axes([0.45, 0.45, 0.45, 0.45]) 101 | Gcc = G.subgraph(sorted(nx.connected_components(G), key=len, reverse=True)[0]) 102 | 103 | pos = nx.spring_layout(Gcc) 104 | plt.axis("off") 105 | nx.draw_networkx_nodes(Gcc, pos, node_size=20) 106 | nx.draw_networkx_edges(Gcc, pos, alpha=0.4) 107 | plt.show() 108 | ``` 109 | 110 | task5_image2 111 | -------------------------------------------------------------------------------- /AcademicTrends/img/task1_image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AcademicTrends/img/task1_image1.png -------------------------------------------------------------------------------- /AcademicTrends/img/task1_image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AcademicTrends/img/task1_image2.png -------------------------------------------------------------------------------- /AcademicTrends/img/task1_image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AcademicTrends/img/task1_image3.png -------------------------------------------------------------------------------- /AcademicTrends/img/task1_image4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AcademicTrends/img/task1_image4.png -------------------------------------------------------------------------------- /AcademicTrends/img/task2_image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AcademicTrends/img/task2_image1.png -------------------------------------------------------------------------------- /AcademicTrends/img/task2_image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AcademicTrends/img/task2_image2.png -------------------------------------------------------------------------------- /AcademicTrends/img/task3_image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AcademicTrends/img/task3_image1.png -------------------------------------------------------------------------------- /AcademicTrends/img/task3_image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AcademicTrends/img/task3_image2.png -------------------------------------------------------------------------------- /AcademicTrends/img/task5_image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AcademicTrends/img/task5_image1.png -------------------------------------------------------------------------------- /AcademicTrends/img/task5_image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AcademicTrends/img/task5_image2.png -------------------------------------------------------------------------------- /AcademicTrends/readme.md: -------------------------------------------------------------------------------- 1 | # 零基础入门数据分析-学术前沿趋势分析 2 | 3 | ## 贡献者信息 4 | | 姓名 | 介绍 | 个人主页 | 5 | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | 6 | | 刘羽中 | 数据科学从业者,Datawhale成员 | https://www.zhihu.com/people/finlayliu | 7 | | 杨毅远 | 清华大学,Datawhale成员 | https://yyysjz1997.github.io/ | 8 | | 张晋 | 北京理工大学,Datawhale成员 | https://blog.csdn.net/weixin_44585839 | 9 | | 雷钲仪 | 华东师范大学,Datawhale成员 | | 10 | | 周郴莲 | 东北石油大学,Datawhale成员 | https://blog.csdn.net/weixin_42691585 | 11 | | 宋怡然 | 上海交通大学,Datawhale成员 | | 12 | 姚童|华北电力大学,Datawhale成员| 13 | 14 | ## 赛题背景 15 | 16 | 本次新人赛是Datawhale与天池联合发起的0基础入门系列赛事第五场 —— 零基础入门数据分析之学术前沿趋势分析。 17 | 18 | 赛题以数据分析为背景,要求选手使用公开的arXiv论文完成对应的数据分析操作。与之前的数据挖掘赛题不同,本次赛题不仅要求选手对数据进行建模,而且需要选手利用赛题数据完成具体的可视化分析。 19 | 20 | 为更好的引导大家入门,我们为本赛题定制了学习方案和学习任务,其中包括数据科学库使用(`Pandas`、`Numpy`和`Matplotlib`)、数据分析介绍和数据分析工具使用三部分。在具体任务中我们将讲解具体工具和使用和完成任务的过程。 21 | 22 | 通过对本方案的完整学习,可以帮助掌握数据分析基本技能。同时我们也将提供专属的视频直播学习通道。 23 | 24 | ## 任务安排 25 | 26 | ### Task00:熟悉规则(1天) 27 | - 组队、修改群昵称。 28 | - 熟悉打卡规则。 29 | 30 | ### Task1:论文数据统计(3天)[Link](https://github.com/datawhalechina/team-learning-data-mining/blob/master/AcademicTrends/Task1%20%E8%AE%BA%E6%96%87%E6%95%B0%E6%8D%AE%E7%BB%9F%E8%AE%A1.md) 31 | 32 | - 学习主题:论文数量统计(数据统计任务),统计2019年全年,计算机各个方向论文数量; 33 | - 学习内容:赛题理解、`Pandas`读取数据、数据统计 ; 34 | - 学习成果:学习`Pandas`基础; 35 | 36 | ### Task2:论文作者统计(3天)[Link](https://github.com/datawhalechina/team-learning-data-mining/blob/master/AcademicTrends/Task2%20%E8%AE%BA%E6%96%87%E4%BD%9C%E8%80%85%E7%BB%9F%E8%AE%A1.md) 37 | 38 | - 学习主题:论文作者统计(数据统计任务),统计所有论文作者出现评率Top10的姓名; 39 | - 学习内容:作者姓名识别和统计; 40 | - 学习成果:学习字符串基本操作、`Matplotlib`基础使用、`Seaborn`基础使用; 41 | 42 | ### Task3:论文代码统计(3天)[Link](https://github.com/datawhalechina/team-learning-data-mining/blob/master/AcademicTrends/Task3%20%E8%AE%BA%E6%96%87%E4%BB%A3%E7%A0%81%E7%BB%9F%E8%AE%A1.md) 43 | 44 | - 学习主题:论文代码统计(数据统计任务),统计所有论文类别下包含源代码论文的比例; 45 | - 学习内容:代码链接识别和统计; 46 | - 学习成果:学会使用正则表达式; 47 | 48 | ### Task4:论文种类分类(3天)[Link](https://github.com/datawhalechina/team-learning-data-mining/blob/master/AcademicTrends/Task4%20%E8%AE%BA%E6%96%87%E7%A7%8D%E7%B1%BB%E5%88%86%E7%B1%BB.md) 49 | 50 | - 学习主题:论文种类分类(数据建模任务),利用已有数据建模,对新论文进行类别分类; 51 | - 学习内容:使用论文标题完成类别分类; 52 | - 学习成果:学会文本分类的基本方法、`TFIDF`等; 53 | 54 | ### Task5:作者信息关联(3天)[Link](https://github.com/datawhalechina/team-learning-data-mining/blob/master/AcademicTrends/Task5%20%E4%BD%9C%E8%80%85%E4%BF%A1%E6%81%AF%E5%85%B3%E8%81%94.md) 55 | 56 | - 学习主题:作者信息关联(数据建模任务),对论文作者关系进行建模,统计最常出现的作者关系; 57 | - 学习内容:构建作者关系图,挖掘作者关系; 58 | - 学习成果:论文作者知识图谱、图关系挖掘; 59 | 60 | ## 赛制说明 61 | 62 | 本次赛事分为两个阶段,分别为**正式赛**及**长期赛**。 63 | 64 | ### 正式赛 65 | 66 | 正式赛赛制: 67 | - 选手报名成功后,选手下载数据,可以本地或天池PAI平台上完成数据统计分析; 68 | - 选手需要自身需要完成数据分析,并进行可视化等相应操作。 69 | - 选手需要在规定时间完成,并将可视化结果和代码公布在比赛论坛内部,并根据大众评审(帖子star数量)和举办方评审后得到最终排名; 70 | 71 | 在正式赛阶段,我们提供了如下统计统计任务: 72 | 73 | - `任务1`:论文数量统计(数据统计任务):统计2019年全年,计算机各个方向论文数量; 74 | - `任务2`:论文作者统计(数据统计任务):统计所有论文作者出现评率Top10的姓名; 75 | - `任务3`:论文代码统计(数据统计任务):统计所有论文类别下包含源代码论文的比例; 76 | - `任务4`:论文分类(数据建模任务):利用已有数据建模,对新论文进行类别分类; 77 | - `任务5`:作者关联(数据建模任务):对论文作者关系进行建模,统计最常出现的作者关系; 78 | 79 | 当然我们推荐选手在我们提供的代码基础上完成自己的可视化任务(可自定义任务和具体分析目标),以下任务仅供参考: 80 | 81 | - 任务1:统计分析每个类别论文在不同时期的热门关键词,分析arXiv论文常见关键词的发展趋势,并进行统计可视化; 82 | - 任务2:统计分析每个类别论文综述句子的长度、情感和定冠词,并进行可视化; 83 | - 任务3:统计分析论文作者的关联度,通过关联挖掘进行分析; 84 | 85 | 正式赛阶段评分规则:根据参赛选手在天池论坛公开代码,并正式赛结束时帖子star数量为标准(star相同则以fork为标准,fork相同则以浏览量为标准)。 86 | 87 | ### 长期赛 88 | 89 | 在正式赛后,本场比赛将长期开放,报名和参赛无时间限制。 90 | 每天每位参赛选手可提交3次完成初赛打分;排行榜每小时更新,按照评测指标得分从高到低排序;排行榜将选择历史最优成绩进行展示; 91 | 92 | ## 赛题数据 93 | 94 | ### 数据说明 95 | 96 | arXiv 重要的学术公开网站,也是搜索、浏览和下载学术论文的重要工具。arXiv论文涵盖的范围非常广,涉及物理学的庞大分支和计算机科学的众多子学科,如数学、统计学、电气工程、定量生物学和经济学等等。 97 | 98 | 本次赛题将使用arXiv在公开的170万篇论文数据集,希望各位选手通过数据分析能够挖掘出最近学术的发展趋势和学术关键词。 99 | 100 | 数据集来源: 101 | [https://www.kaggle.com/Cornell-University/arxiv](https://www.kaggle.com/Cornell-University/arxiv) 102 | 103 | 104 | ## 致谢 105 | 特别感谢 [@LSGOMYP](https://blog.csdn.net/LSGO_MYP) 对本项目的帮助与支持。 106 | 107 | ## 关注我们 108 |
Datawhale是一个专注AI领域的开源组织,以“for the learner,和学习者一起成长”为愿景,构建对学习者最有价值的开源学习社区。关注我们,一起学习成长。
109 | -------------------------------------------------------------------------------- /AnomalyDetection/img/5k1sASfi9gVpcrt6bCpE8ac-7XGQlEhRydpM7L2EHZM.original.fullsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/5k1sASfi9gVpcrt6bCpE8ac-7XGQlEhRydpM7L2EHZM.original.fullsize.png -------------------------------------------------------------------------------- /AnomalyDetection/img/APsWDfG-1NDc-z--7wVPsBICFs7Vvwt0v3T7VZwGvxg.original.fullsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/APsWDfG-1NDc-z--7wVPsBICFs7Vvwt0v3T7VZwGvxg.original.fullsize.png -------------------------------------------------------------------------------- /AnomalyDetection/img/EVHASE85aZeCS43XNaCfsDK6DOJk-WOhXv7KHwo0EoA.original.fullsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/EVHASE85aZeCS43XNaCfsDK6DOJk-WOhXv7KHwo0EoA.original.fullsize.png -------------------------------------------------------------------------------- /AnomalyDetection/img/He6GRseNHy5vCD28xNr5O4wIMSBYC_CMmpmjmWTocg8.original.fullsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/He6GRseNHy5vCD28xNr5O4wIMSBYC_CMmpmjmWTocg8.original.fullsize.png -------------------------------------------------------------------------------- /AnomalyDetection/img/N47Ra3UY3ONpe6opMQoM-LjiauCBqRHf9jISb2yk2As.original.fullsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/N47Ra3UY3ONpe6opMQoM-LjiauCBqRHf9jISb2yk2As.original.fullsize.png -------------------------------------------------------------------------------- /AnomalyDetection/img/UWiX5C7kCHx5yX7O9yQm9F1ndg-QgMqS3BAwIWPB40k.original.fullsize-1609839833441.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/UWiX5C7kCHx5yX7O9yQm9F1ndg-QgMqS3BAwIWPB40k.original.fullsize-1609839833441.png -------------------------------------------------------------------------------- /AnomalyDetection/img/UWiX5C7kCHx5yX7O9yQm9F1ndg-QgMqS3BAwIWPB40k.original.fullsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/UWiX5C7kCHx5yX7O9yQm9F1ndg-QgMqS3BAwIWPB40k.original.fullsize.png -------------------------------------------------------------------------------- /AnomalyDetection/img/cTjP7hnGGCB-h8sfZLCJio9oqUYvs-sdoxpSRtoGCjE.original.fullsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/cTjP7hnGGCB-h8sfZLCJio9oqUYvs-sdoxpSRtoGCjE.original.fullsize.png -------------------------------------------------------------------------------- /AnomalyDetection/img/fOfAz4nhVr7COjlNqCN_AxWiZgVElfaJq6SS8uSjBR4.original.fullsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/fOfAz4nhVr7COjlNqCN_AxWiZgVElfaJq6SS8uSjBR4.original.fullsize.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210103174850565.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210103174850565.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210103174904734.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210103174904734.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210103182254793.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210103182254793.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210103183909407.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210103183909407.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210104144520790.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210104144520790.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210104144603849.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210104144603849.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210104150718935.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210104150718935.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210105140222697-1609839336763.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210105140222697-1609839336763.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210105140222697.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210105140222697.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210105140242611-1609839375267.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210105140242611-1609839375267.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210105140242611.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210105140242611.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210505101703601.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210505101703601.png -------------------------------------------------------------------------------- /AnomalyDetection/img/image-20210506144705398.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/image-20210506144705398.png -------------------------------------------------------------------------------- /AnomalyDetection/img/output_28_0-1609839842623.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/output_28_0-1609839842623.png -------------------------------------------------------------------------------- /AnomalyDetection/img/output_28_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/output_28_0.png -------------------------------------------------------------------------------- /AnomalyDetection/img/output_32_0-1609839844832.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/output_32_0-1609839844832.png -------------------------------------------------------------------------------- /AnomalyDetection/img/output_32_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/output_32_0.png -------------------------------------------------------------------------------- /AnomalyDetection/img/v2-bb94bcf07ced88315d0a5de47677200e_720w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/v2-bb94bcf07ced88315d0a5de47677200e_720w.png -------------------------------------------------------------------------------- /AnomalyDetection/img/xQz5G5vBRHR6PIT6oUEnnPZ1hV5ccszHuX_Fya9R6sQ.original.fullsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/xQz5G5vBRHR6PIT6oUEnnPZ1hV5ccszHuX_Fya9R6sQ.original.fullsize.png -------------------------------------------------------------------------------- /AnomalyDetection/img/图4.1距离检测的困境-离群点A-1609839836032.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/图4.1距离检测的困境-离群点A-1609839836032.png -------------------------------------------------------------------------------- /AnomalyDetection/img/图4.1距离检测的困境-离群点A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/图4.1距离检测的困境-离群点A.png -------------------------------------------------------------------------------- /AnomalyDetection/img/定义3-邻域半径-1609839837759.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/定义3-邻域半径-1609839837759.png -------------------------------------------------------------------------------- /AnomalyDetection/img/定义3-邻域半径.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/定义3-邻域半径.png -------------------------------------------------------------------------------- /AnomalyDetection/img/局部异常因子公式-1609839840015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/局部异常因子公式-1609839840015.png -------------------------------------------------------------------------------- /AnomalyDetection/img/局部异常因子公式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/AnomalyDetection/img/局部异常因子公式.png -------------------------------------------------------------------------------- /AnomalyDetection/readme.md: -------------------------------------------------------------------------------- 1 | # 数据挖掘(异常检测) 2 | 3 | ## 贡献者信息 4 | 5 | | 姓名 | 介绍 | 个人主页 | 6 | | -------------------- | ------------------------------- | ----------------------------------------- | 7 | | 梁家晖 | 广州城市理工学院,Datawhale成员 | https://github.com/leungkafai | 8 | | 李玲 | Datawhale成员 | https://www.zhihu.com/people/liu-yu-18-38 | 9 | | 李芝翔 | 华北电力大学,Datawhale成员 | https://blog.csdn.net/weixin_39940512 | 10 | | 赵可 | 国家电网,Datawhale成员 | | 11 | | 陈信达【运营,群主】 | 华北电力大学,Datawhale成员 | | 12 | | 林星良【领航员】 | Datawhale成员,华南理工大学 | https://github.com/Aliang-CN | 13 | 14 | 15 | 16 | ## 基本信息 17 | 18 | - 贡献人员:**梁家晖**,李玲,李芝翔,赵可,陈信达,林星良 19 | - 学习周期:15天,每天平均花费时间2小时-5小时不等,根据个人学习接受能力强弱有所浮动。 20 | - 学习形式:理论 21 | - 人群定位:熟悉数据挖掘的基本方法,对学习异常检测算法有需求的学员。 22 | - 先修内容:具备数理统计与概率论基础即可。 23 | 24 | ## 学习目标 25 | 26 | 理解传统的异常检测方法原理,并具备基本的调用相应python库进行操作的能力。 27 | 28 | 29 | 30 | ## 任务安排 31 | 32 | 33 | 34 | ### Task00:熟悉规则(1天) 35 | 36 | - 组队、修改群昵称 37 | - 熟悉打卡规则。 38 | 39 | ### Task01:异常检测介绍(2天) 40 | 41 | * 了解异常检测基本概念 42 | * 了解异常检测基本方法 43 | 44 | ### Task02:基于统计学的方法(3天) 45 | 46 | * 掌握基于高斯分布的异常检测方法 47 | * 理解非参数异常检测方法 48 | * 掌握HBOS算法 49 | 50 | ### Task03:线性模型(3天) 51 | 52 | * 理解线性回归 53 | * 掌握主成分分析的异常检测方法 54 | 55 | ### Task04:基于相似度的方法(3天) 56 | 57 | * 理解基于距离的异常检测方法 58 | * 掌握基于密度的LOF算法 59 | 60 | ### Task05:集成方法(3天) 61 | 62 | * 了解集成方法的思想 63 | * 理解feature bagging原理 64 | 65 | * 掌握孤立森林算法 66 | 67 | 68 | 69 | 70 | **关于Datawhale**: 71 | 72 | >Datawhale是一个专注于数据科学与AI领域的开源组织,汇集了众多领域院校和知名企业的优秀学习者,聚合了一群有开源精神和探索精神的团队成员。Datawhale以“for the learner,和学习者一起成长”为愿景,鼓励真实地展现自我、开放包容、互信互助、敢于试错和勇于担当。同时Datawhale 用开源的理念去探索开源内容、开源学习和开源方案,赋能人才培养,助力人才成长,建立起人与人,人与知识,人与企业和人与未来的联结。 73 | 74 | ​ -------------------------------------------------------------------------------- /AnomalyDetection/一、概述.md: -------------------------------------------------------------------------------- 1 | ## 1、什么是异常检测 2 | 3 | **异常检测(Outlier Detection)**,顾名思义,是识别与正常数据不同的数据,与预期行为差异大的数据。 4 | 5 | 识别如信用卡欺诈,工业生产异常,网络流里的异常(网络侵入)等问题,针对的是少数的事件。 6 | 7 | 8 | 9 | ### 1.1 异常的类别 10 | 11 | **点异常**(point anomalies)指的是少数个体实例是异常的,大多数个体实例是正常的,例如正常人与病人的健康指标; 12 | 13 | **条件异常**(conditional anomalies),又称上下文异常,指的是在特定情境下个体实例是异常的,在其他情境下都是正常的,例如在特定时间下的温度突然上升或下降,在特定场景中的快速信用卡交易; 14 | 15 | **群体异常**(group anomalies)指的是在群体集合中的个体实例出现异常的情况,而该个体实例自身可能不是异常,在入侵或欺诈检测等应用中,离群点对应于多个数据点的序列,而不是单个数据点。例如社交网络中虚假账号形成的集合作为群体异常子集,但子集中的个体节点可能与真实账号一样正常。 16 | 17 | 18 | 19 | ### 1.2 异常检测任务分类 20 | 21 | **有监督**:训练集的正例和反例均有标签 22 | 23 | **无监督**:训练集无标签 24 | 25 | **半监督**:在训练集中只有正例,异常实例不参与训练 26 | 27 | 28 | 29 | ### 1.3 异常检测场景 30 | 31 | * **故障检测**:主要是监控系统,在故障发生时可以识别,并且准确指出故障的种类以及出现位置。主要应用领域包括银行欺诈、移动蜂窝网络故障、保险欺诈、医疗欺诈。 32 | 33 | * **医疗日常检测**:在许多医疗应用中,数据是从各种设备收集的,如磁共振成像(MRI)扫描、正电子发射断层扫描(PET)扫描或心电图(ECG)时间序列。这些数据中的异常模式通常反映疾病状况。 34 | 35 | * **网络入侵检测**:在许多计算机系统中,都会收集有关操作系统调用、网络流量或其他用户操作的不同类型的数据。由于恶意活动,此数据可能显示异常行为。对此类活动的识别称为入侵检测。 36 | 37 | * **欺诈检测**:信用卡欺诈越来越普遍,因为信用卡号码等敏感信息更容易被泄露。在许多情况下,未经授权使用信用卡可能表现出不同的模式,例如从特定地点疯狂购买或进行非常大的交易。这种模式可用于检测信用卡交易数据中的异常值。 38 | 39 | * **工业异常检测** 40 | 41 | * **时间序列异常检测** 42 | 43 | * **视频异常检测** 44 | 45 | * **日志异常检测** 46 | 47 | 48 | 49 | ### 1.4 异常检测的难点 50 | 51 | 1.数据量少。异常检测任务通常情况下负样本(异常样本)是比较少的,有时候依赖于人工标签,属于样本不平衡问题。 52 | 53 | 2.噪音。异常和噪音有时候很难分清,如下图,图a的A点位于数据的稀疏区域,与其他数据非常不同,因此可以断定为异常,但是像图b的A点,周围有也有很多点分布,我们很难把A点识别出来。 54 | 55 | ![image-20210505101703601](./img/image-20210505101703601.png) 56 | 57 | 58 | 59 | ## 2、异常检测方法简介 60 | 61 | ### 2.1 基础方法 62 | 63 | #### 2.1.1 基于统计学的方法 64 | 65 | 统计学方法对数据的正常性做出假定。**它们假定正常的数据对象由一个统计模型产生,而不遵守该模型的数据是异常点。**统计学方法的有效性高度依赖于对给定数据所做的统计模型假定是否成立。 66 | 67 | 异常检测的统计学方法的一般思想是:学习一个拟合给定数据集的生成模型,然后识别该模型低概率区域中的对象,把它们作为异常点。 68 | 69 | 即利用统计学方法建立一个模型,然后考虑对象有多大可能符合该模型。 70 | 71 | 假定输入数据集为$\{x^{(1)}, x^{(2)}, ..., x^{(m)}\}$,数据集中的样本服从正态分布,即$x^{(i)}\sim N(\mu, \sigma^2)$,我们可以根据样本求出参数$\mu$和$\sigma$。 72 | 73 | $\mu=\frac 1m\sum_{i=1}^m x^{(i)}$ 74 | 75 | $\sigma^2=\frac 1m\sum_{i=1}^m (x^{(i)}-\mu)^2$ 76 | 77 | 78 | 79 | #### 2.1.2 线性模型 80 | 81 | 典型的如PCA方法,Principle Component Analysis是主成分分析,简称PCA。它的应用场景是对数据集进行降维。降维后的数据能够最大程度地保留原始数据的特征(以数据协方差为衡量标准)。其原理是通过构造一个新的特征空间,把原数据映射到这个新的低维空间里。PCA可以提高数据的计算性能,并且缓解"高维灾难"。 82 | 83 | 84 | 85 | 86 | 87 | #### 2.1.3 基于邻近度的方法 88 | 89 | ​ 这类算法适用于数据点的聚集程度高、离群点较少的情况。同时,因为相似度算法通常需要对每一个数据分别进行相应计算,所以这类算法通常计算量大,不太适用于数据量大、维度高的数据。 90 | 91 | ​ 基于相似度的检测方法大致可以分为三类: 92 | 93 | * 基于集群(簇)的检测,如DBSCAN等聚类算法。 94 | 聚类算法是将数据点划分为一个个相对密集的“簇”,而那些不能被归为某个簇的点,则被视作离群点。这类算法对簇个数的选择高度敏感,数量选择不当可能造成较多正常值被划为离群点或成小簇的离群点被归为正常。因此对于每一个数据集需要设置特定的参数,才可以保证聚类的效果,在数据集之间的通用性较差。聚类的主要目的通常是为了寻找成簇的数据,而将异常值和噪声一同作为无价值的数据而忽略或丢弃,在专门的异常点检测中使用较少。 95 | 96 | + 基于距离的度量,如k近邻算法。 97 | 98 | ​ k近邻算法的基本思路是对每一个点,计算其与最近k个相邻点的距离,通过距离的大小来判断它是否为离群点。在这里,离群距离大小对k的取值高度敏感。如果k太小(例如1),则少量的邻近离群点可能导致较低的离群点得分;如果k太大,则点数少于k的簇中所有的对象可能都成了离群点。为了使模型更加稳定,距离值的计算通常使用k个最近邻的平均距离。 99 | 100 | + 基于密度的度量,如LOF(局部离群因子)算法。 101 | 102 | ​ 局部离群因子(LOF)算法与k近邻类似,不同的是它以相对于其邻居的局部密度偏差而不是距离来进行度量。它将相邻点之间的距离进一步转化为“邻域”,从而得到邻域中点的数量(即密度),认为密度远低于其邻居的样本为异常值。 103 | 104 | 105 | 106 | ### 2.2 集成方法 107 | 108 | 集成是提高数据挖掘算法精度的常用方法。集成方法将多个算法或多个基检测器的输出结合起来。其基本思想是一些算法在某些子集上表现很好,一些算法在其他子集上表现很好,然后集成起来使得输出更加鲁棒。集成方法与基于子空间方法有着天然的相似性,子空间与不同的点集相关,而集成方法使用基检测器来探索不同维度的子集,将这些基学习器集合起来。 109 | 110 | 常用的集成方法有Feature bagging,孤立森林等。 111 | 112 | **feature bagging **: 113 | 114 | 与bagging法类似,只是对象是feature。 115 | 116 | 117 | 118 | **孤立森林**: 119 | 120 | 孤立森林假设我们用一个随机超平面来切割数据空间,切一次可以生成两个子空间。然后我们继续用随机超平面来切割每个子空间并循环,直到每个子空间只有一个数据点为止。直观上来讲,那些具有高密度的簇需要被切很多次才会将其分离,而那些低密度的点很快就被单独分配到一个子空间了。孤立森林认为这些很快被孤立的点就是异常点。 121 | 122 | 用四个样本做简单直观的理解,d是最早被孤立出来的,所以d最有可能是异常。 123 | 124 | 125 | 126 | ![img](https://pic3.zhimg.com/80/v2-bb94bcf07ced88315d0a5de47677200e_720w.png) 127 | 128 | ### 2.3 机器学习 129 | 130 | 在有标签的情况下,可以使用树模型(gbdt,xgboost等)进行分类,缺点是异常检测场景下数据标签是不均衡的,但是利用机器学习算法的好处是可以构造不同特征。 131 | 132 | 133 | 134 | ## 参考资料 135 | 136 | [1] 《Outlier Analysis》——Charu C. Aggarwal 137 | 138 | [2] https://zhuanlan.zhihu.com/p/260651151 139 | 140 | 141 | 142 | 143 | 144 | **关于Datawhale**: 145 | 146 | >Datawhale是一个专注于数据科学与AI领域的开源组织,汇集了众多领域院校和知名企业的优秀学习者,聚合了一群有开源精神和探索精神的团队成员。Datawhale以“for the learner,和学习者一起成长”为愿景,鼓励真实地展现自我、开放包容、互信互助、敢于试错和勇于担当。同时Datawhale 用开源的理念去探索开源内容、开源学习和开源方案,赋能人才培养,助力人才成长,建立起人与人,人与知识,人与企业和人与未来的联结。 147 | 148 | 149 | -------------------------------------------------------------------------------- /AnomalyDetection/五、集成方法.md: -------------------------------------------------------------------------------- 1 | #异常检测——高维数据异常检测 2 | 3 | **主要内容包括:** 4 | 5 | * **Feature Bagging** 6 | 7 | - **孤立森林** 8 | 9 | 10 | 11 | [TOC] 12 | 13 | ## 1、引言 14 | 15 | 在实际场景中,很多数据集都是多维度的。随着维度的增加,数据空间的大小(体积)会以指数级别增长,使数据变得稀疏,这便是维度诅咒的难题。维度诅咒不止给异常检测带来了挑战,对距离的计算,聚类都带来了难题。例如基于邻近度的方法是在所有维度使用距离函数来定义局部性,但是,在高维空间中,所有点对的距离几乎都是相等的(距离集中),这使得一些基于距离的方法失效。在高维场景下,一个常用的方法是子空间方法。 16 | 17 | 集成是子空间思想中常用的方法之一,可以有效提高数据挖掘算法精度。集成方法将多个算法或多个基检测器的输出结合起来。其基本思想是一些算法在某些子集上表现很好,一些算法在其他子集上表现很好,然后集成起来使得输出更加鲁棒。集成方法与基于子空间方法有着天然的相似性,子空间与不同的点集相关,而集成方法使用基检测器来探索不同维度的子集,将这些基学习器集合起来。 18 | 19 | 20 | 21 | 下面来介绍两种常见的集成方法: 22 | 23 | ## 2、Feature Bagging 24 | 25 | Feature Bagging,基本思想与bagging相似,只是对象是feature。feature bagging属于集成方法的一种。集成方法的设计有以下两个主要步骤: 26 | 27 | **1.选择基检测器**。这些基本检测器可以彼此完全不同,或不同的参数设置,或使用不同采样的子数据集。Feature bagging常用lof算法为基算法。下图是feature bagging的通用算法: 28 | 29 | ![image-20210104144520790](./img/image-20210104144520790.png) 30 | 31 | **2.分数标准化和组合方法**:不同检测器可能会在不同的尺度上产生分数。例如,平均k近邻检测器会输出原始距离分数,而LOF算法会输出归一化值。另外,尽管一般情况是输出较大的异常值分数,但有些检测器会输出较小的异常值分数。因此,需要将来自各种检测器的分数转换成可以有意义的组合的归一化值。分数标准化之后,还要选择一个组合函数将不同基本检测器的得分进行组合,最常见的选择包括平均和最大化组合函数。 32 | 33 | 下图是两个feature bagging两个不同的组合分数方法: 34 | 35 | ![image-20210105140222697-1609839336763](img/image-20210105140222697-1609839336763.png) 36 | 37 | ​ (广度优先) 38 | 39 | ![image-20210105140242611](./img/image-20210105140242611.png) 40 | 41 | ​ (累积求和) 42 | 43 | ​ 44 | 45 | 基探测器的设计及其组合方法都取决于特定集成方法的特定目标。很多时候,我们无法得知数据的原始分布,只能通过部分数据去学习。除此以外,算法本身也可能存在一定问题使得其无法学习到数据完整的信息。这些问题造成的误差通常分为偏差和方差两种。 46 | 47 | **方差**:是指算法输出结果与算法输出期望之间的误差,描述模型的离散程度,数据波动性。 48 | 49 | **偏差**:是指预测值与真实值之间的差距。即使在离群点检测问题中没有可用的基本真值 50 | 51 | 52 | 53 | ## 3、Isolation Forests 54 | 55 | 孤立森林(Isolation Forest)算法是周志华教授等人于2008年提出的异常检测算法,是机器学习中少见的专门针对异常检测设计的算法之一,方法因为该算法时间效率高,能有效处理高维数据和海量数据,无须标注样本,在工业界应用广泛。 56 | 57 | 孤立森林属于非参数和无监督的算法,既不需要定义数学模型也不需要训练数据有标签。孤立森林查找孤立点的策略非常高效。假设我们用一个随机超平面来切割数据空间,切一次可以生成两个子空间。然后我们继续用随机超平面来切割每个子空间并循环,直到每个子空间只有一个数据点为止。直观上来讲,那些具有高密度的簇需要被切很多次才会将其分离,而那些低密度的点很快就被单独分配到一个子空间了。孤立森林认为这些很快被孤立的点就是异常点。 58 | 59 | 用四个样本做简单直观的理解,d是最早被孤立出来的,所以d最有可能是异常。 60 | 61 | ![img](./img/v2-bb94bcf07ced88315d0a5de47677200e_720w.png) 62 | 63 | 64 | 65 | 怎么来切这个数据空间是孤立森林的核心思想。因为切割是随机的,为了结果的可靠性,要用集成(ensemble)的方法来得到一个收敛值,即反复从头开始切,平均每次切的结果。孤立森林由t棵孤立的数组成,每棵树都是一个随机二叉树,也就是说对于树中的每个节点,要么有两个孩子节点,要么一个孩子节点都没有。树的构造方法和随机森林(random forests)中树的构造方法有些类似。流程如下: 66 | 67 | 1) 从训练数据中随机选择一个样本子集,放入树的根节点; 68 | 69 | 2) 随机指定一个属性,随机产生一个切割点V,即属性A的最大值和最小值之间的某个数; 70 | 71 | 3) 根据属性A对每个样本分类,把A小于V的样本放在当前节点的左孩子中,大于等于V的样本放在右孩子中,这样就形成了2个子空间; 72 | 73 | 4) 在孩子节点中递归步骤2和3,不断地构造左孩子和右孩子,直到孩子节点中只有一个数据,或树的高度达到了限定高度。 74 | 75 | 获得t棵树之后,孤立森林的训练就结束,就可以用生成的孤立森林来评估测试数据。 76 | 77 | 78 | 79 | 孤立森林检测异常的假设是:异常点一般都是非常稀有的,在树中会很快被划分到叶子节点,因此可以用叶子节点到根节点的路径长度来判断一条记录是否是异常的。和随机森林类似,孤立森林也是采用构造好的所有树的平均结果形成最终结果的。在训练时,每棵树的训练样本是随机抽样的。从孤立森林的树的构造过程看,它不需要知道样本的标签,而是通过阈值来判断样本是否异常。因为异常点的路径比较短,正常点的路径比较长,孤立森林根据路径长度来估计每个样本点的异常程度。 80 | 81 | 路径长度计算方法: 82 | 83 | ![image-20210103183909407](./img//image-20210103183909407.png) 84 | 85 | 86 | 87 | 孤立森林也是一种基于子空间的方法,不同的分支对应于数据的不同局部子空间区域,较小的路径对应于孤立子空间的低维 88 | 89 | ## 4、总结 90 | 91 | 1.feature bagging可以降低方差 92 | 93 | 2.孤立森林的优势在于: 94 | 95 | - 计算成本相比基于距离或基于密度的算法更小。 96 | - 具有线性的时间复杂度。 97 | - 在处理大数据集上有优势。 98 | 99 | 孤立森林不适用于超高维数据,因为鼓励森林每次都是随机选取维度,如果维度过高,则会存在过多噪音。 100 | 101 | 102 | 103 | ## 5、练习 104 | 105 | **1.思考题:feature bagging为什么可以降低方差?** 106 | 107 | 108 | 109 | **2.思考题:feature bagging存在哪些缺陷,有什么可以优化的idea?** 110 | 111 | 112 | 113 | ## 参考资料 114 | 115 | [1] https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/icdm08b.pdf 116 | 117 | [2]《Outlier Analysis》——Charu C. Aggarwal 118 | 119 | 120 | 121 | **关于Datawhale**: 122 | 123 | >Datawhale是一个专注于数据科学与AI领域的开源组织,汇集了众多领域院校和知名企业的优秀学习者,聚合了一群有开源精神和探索精神的团队成员。Datawhale以“for the learner,和学习者一起成长”为愿景,鼓励真实地展现自我、开放包容、互信互助、敢于试错和勇于担当。同时Datawhale 用开源的理念去探索开源内容、开源学习和开源方案,赋能人才培养,助力人才成长,建立起人与人,人与知识,人与企业和人与未来的联结。 124 | 125 | -------------------------------------------------------------------------------- /AnomalyDetection/附录.md: -------------------------------------------------------------------------------- 1 | # 附录 2 | 3 | ## 数据集 4 | 5 | 1. Outlier Detection DataSets (ODDS) :http://odds.cs.stonybrook.edu/#table1 6 | 2. KDD99(网络入侵):http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html 7 | 8 | ## 工具 9 | 10 | ### scikit-learn 11 | 12 | > [`ensemble.IsolationForest`](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.IsolationForest.html#sklearn.ensemble.IsolationForest)并[`neighbors.LocalOutlierFactor`](https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.LocalOutlierFactor.html#sklearn.neighbors.LocalOutlierFactor) 在此处考虑的数据集上表现良好。的[`svm.OneClassSVM`](https://scikit-learn.org/stable/modules/generated/sklearn.svm.OneClassSVM.html#sklearn.svm.OneClassSVM)被称为是对异常值敏感并因此对异常值检测不执行得非常好。话虽如此,在高维中进行离群检测,或者不对基础数据的分布进行任何假设都是非常具有挑战性的。[`svm.OneClassSVM`](https://scikit-learn.org/stable/modules/generated/sklearn.svm.OneClassSVM.html#sklearn.svm.OneClassSVM)仍然可以与离群值检测一起使用,但需要对其超参数`nu`进行微调 以处理离群值并防止过拟合。最后, [`covariance.EllipticEnvelope`](https://scikit-learn.org/stable/modules/generated/sklearn.covariance.EllipticEnvelope.html#sklearn.covariance.EllipticEnvelope)假设数据为高斯并学习一个椭圆。有关不同估计量的更多详细信息,请参阅“[比较异常检测算法以对玩具数据集进行异常检测](https://scikit-learn.org/stable/auto_examples/miscellaneous/plot_anomaly_comparison.html#sphx-glr-auto-examples-miscellaneous-plot-anomaly-comparison-py)的示例” 及其以下部分。 13 | 14 | 15 | 16 | ![../_images/sphx_glr_plot_anomaly_comparison_0011.png](https://scikit-learn.org/stable/_images/sphx_glr_plot_anomaly_comparison_0011.png) 17 | 18 | 19 | 20 | ### PyOD 21 | 22 | > PyOD是一个全面且可扩展的**Python工具箱,**用于**检测**多元数据中的异常**对象**。这个令人兴奋而又充满挑战的领域通常称为 [异常值检测](https://en.wikipedia.org/wiki/Anomaly_detection) 或[异常检测](https://en.wikipedia.org/wiki/Anomaly_detection)。 23 | > 24 | > 从传统的LOF(SIGMOD 2000)到最新的COPOD(ICDM 2020),PyOD包括30多种检测算法。自2017年以来,PyOD [ [AZNL19](https://pyod.readthedocs.io/en/latest/#id66) ]已成功用于众多学术研究和商业产品[ [AGSW19](https://pyod.readthedocs.io/en/latest/#id75),[ALCJ + 19](https://pyod.readthedocs.io/en/latest/#id73),[AWDL + 19](https://pyod.readthedocs.io/en/latest/#id74),[AZNHL19](https://pyod.readthedocs.io/en/latest/#id64) ]。机器学习社区也通过各种专门的帖子/教程[对它进行了广泛认可](https://www.analyticsvidhya.com/blog/2019/02/outlier-detection-python-pyod/),包括 [Analytics Vidhya](https://www.analyticsvidhya.com/blog/2019/02/outlier-detection-python-pyod/), [Towards Data Science](https://towardsdatascience.com/anomaly-detection-for-dummies-15f148e559c1), [KDnuggets](https://www.kdnuggets.com/2019/02/outlier-detection-methods-cheat-sheet.html), [Computer Vision News](https://rsipvision.com/ComputerVisionNews-2019March/18/)和 [awesome-machine-learning](https://github.com/josephmisiti/awesome-machine-learning#python-general-purpose).。 25 | 26 | 27 | 28 | **代码示例** 29 | 30 | ***以下内容来自PyOD官网介绍*** 31 | 32 | 1. 导入模型 33 | 34 | > ``` 35 | > from pyod.models.knn import KNN # kNN detector 36 | > ``` 37 | 38 | 2. 使用 `pyod.utils.data.generate_data()`生成数据 39 | 40 | > ``` 41 | > contamination = 0.1 # percentage of outliers 42 | > n_train = 200 # number of training points 43 | > n_test = 100 # number of testing points 44 | > 45 | > X_train, y_train, X_test, y_test = generate_data( 46 | > n_train=n_train, n_test=n_test, contamination=contamination) 47 | > ``` 48 | 49 | 3. fit and predict 50 | 51 | > ``` 52 | > # train kNN detector 53 | > clf_name = 'KNN' 54 | > clf = KNN() 55 | > clf.fit(X_train) 56 | > 57 | > # get the prediction labels and outlier scores of the training data 58 | > y_train_pred = clf.labels_ # binary labels (0: inliers, 1: outliers) 59 | > y_train_scores = clf.decision_scores_ # raw outlier scores 60 | > 61 | > # get the prediction on the test data 62 | > y_test_pred = clf.predict(X_test) # outlier labels (0 or 1) 63 | > y_test_scores = clf.decision_function(X_test) # outlier scores 64 | > ``` 65 | 66 | 4. 使用ROC和Precision @ Rank n 评估预测 67 | 68 | > ``` 69 | > from pyod.utils.data import evaluate_print 70 | > # evaluate and print the results 71 | > print("\nOn Training Data:") 72 | > evaluate_print(clf_name, y_train, y_train_scores) 73 | > print("\nOn Test Data:") 74 | > evaluate_print(clf_name, y_test, y_test_scores) 75 | > ``` 76 | 77 | 5. 观察训练集以及测试集的输出 78 | 79 | > ``` 80 | > On Training Data: 81 | > KNN ROC:1.0, precision @ rank n:1.0 82 | > 83 | > On Test Data: 84 | > KNN ROC:0.9989, precision @ rank n:0.9 85 | > ``` 86 | 87 | 6. 可视化 88 | 89 | > ``` 90 | > visualize(clf_name, X_train, y_train, X_test, y_test, y_train_pred, 91 | > y_test_pred, show_figure=True, save_figure=False) 92 | > ``` 93 | 94 | ![kNN demo](https://pyod.readthedocs.io/en/latest/_images/KNN.png) 95 | 96 | 详细代码请看官网说明:https://pyod.readthedocs.io/en/latest/pyod.html -------------------------------------------------------------------------------- /CityManagement/readme.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | # 城市管理大数据算法模型(DCIC) 5 | 6 | 作者:阿水, 鱼遇雨欲语与余 7 | 8 | ## 技能点 9 | 涉及到的数据处理技能: 10 | 11 | - Pandas和Numpy 12 | 13 | 涉及到的数据可视化技能: 14 | 15 | - Matplotlib 和 folium 16 | - 机器学习技能Sklearn 17 | - 爬虫技能等 18 | 19 | ## 学习主题 20 | 21 | 比赛链接:https://data.xm.gov.cn/contest-series-api/promote/register/3/UrnA69nb 22 | 23 | 24 | ## 前置知识 25 | 26 | 注册和登录手册:https://data.xm.gov.cn/contest-series-api/file/period_id_1/userGuide.pdf 27 | 28 | ## 面向人群 29 | 30 | - 项目起因:因为和DCIC主办方有过合作,阿水,⻥佬受邀参与直播分享和答疑,建了专⻔的答疑群,在这期间发现很多小伙伴有学过数据分析知识,但是拿到真实的业务数据就不知道怎么分析了,懂得调参建模,但是不知道怎么做决策分析报告。 31 | - 项目现状:基于这个现状,我们希望建立一个⻓期的数据分析进阶群。阿水根据DCIC的真实数据,设置了6个学习任务,一起完成数据分析,算法应用和决策分析的整个过程,效果好的话,再做成数据分析开源项目。 32 | - 面向人群:前段时间报名了DCIC赛事,对真实业务数据分析学习比较感兴趣,有一定数据分析基础的同学。 33 | 34 | 35 | ### 任务1 36 | 37 | - 学习主题:赛题任务解析 38 | - 学习内容:赛题内容介绍、算法分析题解读、创意分析题解读、最佳参赛指南 39 | - 学习成果:学会使用Pandas读取数据 40 | - https://coggle.club/learn/dcic2021/task1 41 | 42 | ### 任务2 43 | - 学习主题:算法分析题内容讲解(共享单车潮汐点分析) 44 | - 学习内容:数据分析流程介绍、算法赛数据读取、热门单车潮汐点分析、单车经纬度可视化 45 | - 学习成果:经纬度与地图统计,单车潮汐分析 46 | - https://coggle.club/learn/dcic2021/task2 47 | 48 | ### 任务3 49 | - 学习主题:算法分析题内容讲解(共享单车潮汐点建议) 50 | - 学习内容:Pandas代码优化方法、经纬度距离计算、潮汐点统计与可视化、共享单车停车建议 51 | - 学习成果:地图聚类,潮汐点分析 52 | - https://coggle.club/learn/dcic2021/task3 53 | 54 | 55 | ### 任务4 56 | 57 | - 学习主题:创意分析题交通调度内容讲解(共享单车调度方案) 58 | - 学习内容:时序分析与建模方法、回归/预测与聚类、地铁订单流量分析、单车时空调度方案 59 | - 学习成果:共享单车调度方案 60 | - https://coggle.club/learn/dcic2021/task4 61 | 62 | ### 任务5 63 | 64 | - 学习主题:创意分析题交通调度内容讲解(单车畅行友好度方案) 65 | - 学习内容:交通拥堵识别方法、骑行路线分析、骑行时间分析、单车畅行友好度方案 66 | - 学习成果:单车畅行友好度方案 67 | - https://coggle.club/learn/dcic2021/task5 68 | 69 | 70 | ## 活动说明 71 | 1. DCIC是一个正在进行的赛事,是有比较高的奖金的,但织这个学习初衷不是帮大家拿奖金,是以学习为主,所有内容代码都会开源。 72 | 2. 本次活动和主办方已经交流过,这次只是用比赛数据,提供一个学习思路和初步方案,基于真实业务数据的数据分析实践,一起提升能力。希望能帮助到大家增加履历或者有助于科研发论文。 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /ECommerceSearch/readme.md: -------------------------------------------------------------------------------- 1 | ## 比赛介绍 2 | 3 | 本次题目围绕电商领域搜索算法,开发者们可以通过基于阿里巴巴集团自研的高性能分布式搜索引擎问天引擎(提供高工程性能的电商智能搜索平台),可以快速迭代搜索算法,无需自主建设检索全链路环境。 4 | 5 | **本次评测的数据来自于淘宝搜索真实的业务场景,其中整个搜索商品集合按照商品的类别随机抽样保证了数据的多样性,搜索Query和相关的商品来自点击行为日志并通过模型+人工确认的方式完成校验保证了训练和测试数据的准确性。** 6 | 7 | 比赛官网:[https://tianchi.aliyun.com/competition/entrance/531946/introduction](https://tianchi.aliyun.com/competition/entrance/531946/introduction) 8 | 9 | ## 学习内容 10 | 11 | ### 任务1:环境配置、实践数据下载 12 | 13 | - 任务内容: 14 | - 从比赛官网下载数据集,并使用Python读取数据 15 | - 使用`jieba`对文本进行分词 16 | - 使用`TFIDF`对文本进行编码 17 | - 写出使用TFIDF计算文本相似度的方法 18 | - 学习资料:[https://coggle.club/blog/tianchi-open-search](https://coggle.club/blog/tianchi-open-search) 19 | 20 | 21 | ### 任务2:词向量介绍与训练 22 | 23 | - 任务内容: 24 | - 使用任务1得到数据使用`gensim`训练词向量 25 | - 计算与`格力`相似的Top10单词 26 | - 使用词向量完成句子编码(例如单词编码为128维度,一个句子包含十个单词为10*128) 27 | - 对句子编码10*128进行求均值,转变为128维度 28 | - 扩展:你能使用计算得到的词向量,计算train.query.txt和corpus.tsv文本的相似度吗(train选择100条文本,corpus选择100条文本)? 29 | - 学习资料: 30 | - [https://coggle.club/blog/tianchi-open-search](https://coggle.club/blog/tianchi-open-search) 31 | - [https://radimrehurek.com/gensim/models/word2vec.html](https://radimrehurek.com/gensim/models/word2vec.html) 32 | 33 | ### 任务3:IDF与词向量编码 34 | - 任务内容: 35 | - 基于任务2的编码 & 训练集标注数据:筛选1k条train.query.txt文本,以及对应的在corpus.tsv文本的文本。 36 | - 使用任务2的编码方法对1k train 和 1k corpus的文本进行编码 37 | - 模拟文本检索的过程:train的文本128向量计算与corpus文本的向量相似度 38 | - 检索完成1k文本后,你能完成计算MRR吗(MRR计算为:1/正确corpus文本的次序)? 39 | - 扩展:你能使用单词的IDF筛选单词(IDF可以从任务1得到),然后再对句子进行编码吗? 40 | - 学习资料: 41 | - [https://coggle.club/blog/tianchi-open-search](https://coggle.club/blog/tianchi-open-search) 42 | 43 | 44 | ### 任务4:文本编码与提交 45 | - 任务内容: 46 | - 使用任务2 & 任务3的思路对dev.query.txt和corpus.tsv进行编码 47 | - 将编码结果编码为比赛需要的格式 48 | - 将结果打包提交到天池,得到具体得到 49 | - 学习资料: 50 | - [https://coggle.club/blog/tianchi-open-search](https://coggle.club/blog/tianchi-open-search) 51 | -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.1.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.10.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.11.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.12.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.13.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.14.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.15.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.16.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.17.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.18.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.19.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.2.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.20.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.21.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.22.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.23.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.24.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.25.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.26.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.27.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.28.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.29.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.3.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.30.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.4.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.5.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.6.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.6.1.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.6.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.6.2.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.6.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.7.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.8.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.9.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.9.1.png -------------------------------------------------------------------------------- /EnsembleLearning/CH2-机器学习基础模型回顾/1.9.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH2-机器学习基础模型回顾/1.9.2.png -------------------------------------------------------------------------------- /EnsembleLearning/CH3-集成学习之投票法与bagging/DecisionTree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH3-集成学习之投票法与bagging/DecisionTree.png -------------------------------------------------------------------------------- /EnsembleLearning/CH3-集成学习之投票法与bagging/RandomForest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH3-集成学习之投票法与bagging/RandomForest.png -------------------------------------------------------------------------------- /EnsembleLearning/CH3-集成学习之投票法与bagging/Standalone-Models-for-Binary-Classification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH3-集成学习之投票法与bagging/Standalone-Models-for-Binary-Classification.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/0001.model: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/0001.model -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/1.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/10.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/11.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/12.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/13.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/14.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/15.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/16.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/17.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/18.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/19.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/2.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/3.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/4.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/5.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/6.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/7.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/8.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/9.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/dump.raw.txt: -------------------------------------------------------------------------------- 1 | booster[0]: 2 | 0:[f1<1.79999995] yes=1,no=2,missing=1 3 | 1:leaf=-0.00167664688 4 | 2:leaf=0.0225523021 5 | booster[1]: 6 | 0:[f0<12.7450008] yes=1,no=2,missing=1 7 | 1:[f0<12.2350006] yes=3,no=4,missing=3 8 | 3:leaf=-0.00262214988 9 | 4:leaf=0.00287974672 10 | 2:leaf=0.0214265939 11 | booster[2]: 12 | 0:leaf=-0.00332116825 13 | booster[3]: 14 | 0:leaf=-0.00334951468 15 | booster[4]: 16 | 0:leaf=-0.00329787261 17 | booster[5]: 18 | 0:leaf=-0.00336898421 19 | booster[6]: 20 | 0:leaf=-0.00335616455 21 | booster[7]: 22 | 0:leaf=-0.00335616455 23 | booster[8]: 24 | 0:leaf=-0.00334951468 25 | booster[9]: 26 | 0:leaf=-0.00330584752 27 | booster[10]: 28 | 0:[f0<12.7800007] yes=1,no=2,missing=1 29 | 1:leaf=0.0251812898 30 | 2:leaf=0.000917753612 31 | booster[11]: 32 | 0:[f1<2.00500011] yes=1,no=2,missing=1 33 | 1:leaf=0.0227872226 34 | 2:leaf=-0.00228677341 35 | booster[12]: 36 | 0:leaf=-0.00330345333 37 | booster[13]: 38 | 0:leaf=-0.00332601252 39 | booster[14]: 40 | 0:leaf=-0.0033333532 41 | booster[15]: 42 | 0:leaf=-0.00340164825 43 | booster[16]: 44 | 0:leaf=-0.00330339023 45 | booster[17]: 46 | 0:leaf=-0.00338479271 47 | booster[18]: 48 | 0:leaf=-0.00329532544 49 | booster[19]: 50 | 0:leaf=-0.00332611194 51 | booster[20]: 52 | 0:[f0<12.7800007] yes=1,no=2,missing=1 53 | 1:leaf=0.0232013054 54 | 2:leaf=0.00143345271 55 | booster[21]: 56 | 0:[f0<12.4899998] yes=1,no=2,missing=1 57 | 1:[f0<12.1800003] yes=3,no=4,missing=3 58 | 3:leaf=-0.00249572913 59 | 4:leaf=0.00314772734 60 | 2:leaf=0.018272765 61 | booster[22]: 62 | 0:leaf=-0.003382419 63 | booster[23]: 64 | 0:leaf=-0.00339378673 65 | booster[24]: 66 | 0:leaf=-0.00333784032 67 | booster[25]: 68 | 0:leaf=-0.00329276407 69 | booster[26]: 70 | 0:leaf=-0.00337041426 71 | booster[27]: 72 | 0:leaf=-0.00333078601 73 | booster[28]: 74 | 0:leaf=-0.00330856745 75 | booster[29]: 76 | 0:leaf=-0.00332364067 77 | booster[30]: 78 | 0:[f1<1.98500001] yes=1,no=2,missing=1 79 | 1:leaf=0.000478318485 80 | 2:leaf=0.024260221 81 | booster[31]: 82 | 0:[f0<12.7450008] yes=1,no=2,missing=1 83 | 1:[f0<12.2350006] yes=3,no=4,missing=3 84 | 3:leaf=-0.00249379966 85 | 4:leaf=0.00320278108 86 | 2:leaf=0.0188698322 87 | booster[32]: 88 | 0:leaf=-0.0033738818 89 | booster[33]: 90 | 0:leaf=-0.00331355026 91 | booster[34]: 92 | 0:leaf=-0.00333534204 93 | booster[35]: 94 | 0:leaf=-0.00327354297 95 | booster[36]: 96 | 0:leaf=-0.00339683075 97 | booster[37]: 98 | 0:leaf=-0.00331358286 99 | booster[38]: 100 | 0:leaf=-0.00331365853 101 | booster[39]: 102 | 0:leaf=-0.0033137179 103 | booster[40]: 104 | 0:[f1<2.21000004] yes=1,no=2,missing=1 105 | 1:leaf=-0.000693901035 106 | 2:leaf=0.0233493987 107 | booster[41]: 108 | 0:[f0<12.7450008] yes=1,no=2,missing=1 109 | 1:[f0<12.2350006] yes=3,no=4,missing=3 110 | 3:leaf=-0.00244552107 111 | 4:leaf=0.00326615479 112 | 2:leaf=0.0188130029 113 | booster[42]: 114 | 0:leaf=-0.00333267869 115 | booster[43]: 116 | 0:leaf=-0.00331851956 117 | booster[44]: 118 | 0:leaf=-0.00331858872 119 | booster[45]: 120 | 0:leaf=-0.00335928169 121 | booster[46]: 122 | 0:leaf=-0.00331845111 123 | booster[47]: 124 | 0:leaf=-0.00332558574 125 | booster[48]: 126 | 0:leaf=-0.0032710426 127 | booster[49]: 128 | 0:leaf=-0.00336550688 129 | booster[50]: 130 | 0:[f0<12.8050003] yes=1,no=2,missing=1 131 | 1:leaf=0.0211855415 132 | 2:leaf=-0.00144048361 133 | booster[51]: 134 | 0:[f1<2.20499992] yes=1,no=2,missing=1 135 | 1:leaf=0.019391967 136 | 2:leaf=-0.00215333444 137 | booster[52]: 138 | 0:leaf=-0.00335702649 139 | booster[53]: 140 | 0:leaf=-0.00333733112 141 | booster[54]: 142 | 0:leaf=-0.00336306286 143 | booster[55]: 144 | 0:leaf=-0.00338677107 145 | booster[56]: 146 | 0:leaf=-0.00335062738 147 | booster[57]: 148 | 0:leaf=-0.0033568542 149 | booster[58]: 150 | 0:leaf=-0.00335071259 151 | booster[59]: 152 | 0:leaf=-0.00329332263 153 | booster[60]: 154 | 0:[f0<12.7800007] yes=1,no=2,missing=1 155 | 1:leaf=0.02029467 156 | 2:leaf=0.00275001978 157 | booster[61]: 158 | 0:[f0<12.1800003] yes=1,no=2,missing=1 159 | 1:leaf=-0.00244074967 160 | 2:[f0<12.7450008] yes=3,no=4,missing=3 161 | 3:leaf=0.00628815545 162 | 4:leaf=0.0183121879 163 | booster[62]: 164 | 0:leaf=-0.00332106487 165 | booster[63]: 166 | 0:leaf=-0.00331367063 167 | booster[64]: 168 | 0:leaf=-0.00327475765 169 | booster[65]: 170 | 0:leaf=-0.00332799996 171 | booster[66]: 172 | 0:leaf=-0.00326598599 173 | booster[67]: 174 | 0:leaf=-0.0033670105 175 | booster[68]: 176 | 0:leaf=-0.00316595682 177 | booster[69]: 178 | 0:leaf=-0.00332104694 179 | booster[70]: 180 | 0:[f0<12.7650003] yes=1,no=2,missing=1 181 | 1:leaf=0.0203699265 182 | 2:leaf=0.00137320568 183 | booster[71]: 184 | 0:[f0<12.4650002] yes=1,no=2,missing=1 185 | 1:leaf=-0.00194271619 186 | 2:leaf=0.0175629407 187 | booster[72]: 188 | 0:leaf=-0.00331112696 189 | booster[73]: 190 | 0:leaf=-0.00330391992 191 | booster[74]: 192 | 0:leaf=-0.00335213495 193 | booster[75]: 194 | 0:leaf=-0.00331101543 195 | booster[76]: 196 | 0:leaf=-0.00331097725 197 | booster[77]: 198 | 0:leaf=-0.003311123 199 | booster[78]: 200 | 0:leaf=-0.0033186723 201 | booster[79]: 202 | 0:leaf=-0.00326352566 203 | booster[80]: 204 | 0:[f0<12.7450008] yes=1,no=2,missing=1 205 | 1:leaf=0.020401584 206 | 2:leaf=-0.000695777766 207 | booster[81]: 208 | 0:[f1<2.08999991] yes=1,no=2,missing=1 209 | 1:leaf=0.0195696633 210 | 2:[f1<2.7750001] yes=3,no=4,missing=3 211 | 3:leaf=0.000353478739 212 | 4:leaf=-0.00255760807 213 | booster[82]: 214 | 0:leaf=-0.00326074357 215 | booster[83]: 216 | 0:leaf=-0.00334964832 217 | booster[84]: 218 | 0:leaf=-0.00337391347 219 | booster[85]: 220 | 0:leaf=-0.00336799235 221 | booster[86]: 222 | 0:leaf=-0.0033680005 223 | booster[87]: 224 | 0:leaf=-0.00334327272 225 | booster[88]: 226 | 0:leaf=-0.00323429005 227 | booster[89]: 228 | 0:leaf=-0.00324315438 229 | booster[90]: 230 | 0:[f1<2.05499983] yes=1,no=2,missing=1 231 | 1:leaf=-0.00168179313 232 | 2:leaf=0.0211347807 233 | booster[91]: 234 | 0:[f0<12.5249996] yes=1,no=2,missing=1 235 | 1:leaf=-0.000959251658 236 | 2:leaf=0.0150438426 237 | booster[92]: 238 | 0:leaf=-0.00325799454 239 | booster[93]: 240 | 0:leaf=-0.00334080867 241 | booster[94]: 242 | 0:leaf=-0.00328319846 243 | booster[95]: 244 | 0:leaf=-0.00332048861 245 | booster[96]: 246 | 0:leaf=-0.00333417533 247 | booster[97]: 248 | 0:leaf=-0.00329860556 249 | booster[98]: 250 | 0:leaf=-0.00327543961 251 | booster[99]: 252 | 0:leaf=-0.00334100495 253 | -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/内存使用量.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/内存使用量.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/准确率对比.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/准确率对比.png -------------------------------------------------------------------------------- /EnsembleLearning/CH4-集成学习之boosting/速度对比.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH4-集成学习之boosting/速度对比.png -------------------------------------------------------------------------------- /EnsembleLearning/CH5-集成学习之blending与stacking/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH5-集成学习之blending与stacking/1.png -------------------------------------------------------------------------------- /EnsembleLearning/CH5-集成学习之blending与stacking/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH5-集成学习之blending与stacking/2.png -------------------------------------------------------------------------------- /EnsembleLearning/CH5-集成学习之blending与stacking/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH5-集成学习之blending与stacking/3.jpg -------------------------------------------------------------------------------- /EnsembleLearning/CH5-集成学习之blending与stacking/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH5-集成学习之blending与stacking/4.jpg -------------------------------------------------------------------------------- /EnsembleLearning/CH5-集成学习之blending与stacking/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH5-集成学习之blending与stacking/5.png -------------------------------------------------------------------------------- /EnsembleLearning/CH6-集成学习之案例分享/集成学习案例分析1/index.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH6-集成学习之案例分享/集成学习案例分析1/index.xlsx -------------------------------------------------------------------------------- /EnsembleLearning/CH6-集成学习之案例分享/集成学习案例分析1/survey.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH6-集成学习之案例分享/集成学习案例分析1/survey.pdf -------------------------------------------------------------------------------- /EnsembleLearning/CH6-集成学习之案例分享/集成学习案例分析1/test.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH6-集成学习之案例分享/集成学习案例分析1/test.csv -------------------------------------------------------------------------------- /EnsembleLearning/CH6-集成学习之案例分享/集成学习案例分析1/train.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/EnsembleLearning/CH6-集成学习之案例分享/集成学习案例分析1/train.csv -------------------------------------------------------------------------------- /EnsembleLearning/readme.md: -------------------------------------------------------------------------------- 1 | # 开源项目:机器学习集成学习与模型融合(基于python) 2 | 3 | ## (一) 项目初衷 4 | 5 | 这件事开始于我们参加一些机器学习比赛,在类似于kaggle等大型数据科学竞赛的时候, 我们总喜欢去观摩高分选手的一些参赛模型,得出一个很重要的结论就是:除了深度学习以外的高分模型,无一例外地见到了集成学习和模型融合的身影。这个发现迫使我去学习一些除了基础模型以外的集成学习方法以便在这些比赛上获得更好的成绩。但是,当我使用具体的sklearn编程的时候, 往往因为不懂得集成学习的一 些底层知识而不懂参数的含义。因此,在本项目中我们会从基础模型的推导以及 sklearn应用过渡到使用集成学习的技术去优化我们的基础模型,使得我们的模型能更好地解决机器学习问题。 6 | 7 | ## (二) 内容设置 8 | 9 | - 第一章:python数据处理基础(待完善) 10 | - 第二章:机器学习基础 11 | - 机器学习的三大主要任务 12 | - 基本的回归模型 13 | - 偏差与方差理论 14 | - 回归模型的评估及超参数调优 15 | - 基本的分类模型 16 | - 分类问题的评估及超参数调优 17 | - 第三章:集成学习之投票法与Bagging 18 | - 投票法的思路 19 | - 投票法的原理分析 20 | - 投票法的案例分析(基于sklearn,介绍pipe管道的使用以及voting的使用) 21 | - Bagging的思路 22 | - Bagging的原理分析 23 | - Bagging的案例分析(基于sklearn,介绍随机森林的相关理论以及实例) 24 | - 第四章:集成学习之Boosting提升法 25 | - Boosting的思路与Adaboost算法 26 | - 前向分步算法与梯度提升决策树(GBDT) 27 | - XGBoost算法与xgboost库的使用 28 | - Xgboost算法案例与调参实例 29 | - LightGBM算法的基本介绍 30 | - 第五章:集成学习之Blending与Stacking 31 | - Blending集成学习算法 32 | - Stacking集成学习算法 33 | - Blending集成学习算法与Stacking集成学习算法的案例分享 34 | - 第六章:集成学习之案例分析 35 | - 集成学习案例一 (幸福感预测) 36 | - 集成学习案例二 (蒸汽量预测) 37 | 38 | ## (三) 人员安排 39 | 40 | | 成员 | 个人简介 | 个人主页 | 41 | | ------ | ----------------------------------------------------- | ------------------------------------------------- | 42 | | 李祖贤 | Datawhale成员,项目负责人,深圳大学数学与应用数学专业 | https://www.zhihu.com/people/meng-di-76-92/posts | 43 | | 赵可 | Datawhale成员,国家电网电气工程师 | | 44 | | 杨毅远 | Datawhale成员,清华大学自动化系研二 | https://yyysjz1997.github.io/ | 45 | | 薛传雨 | Datawhale成员,康涅狄格大学在读博士 | http://chuanyuxue.com/ | 46 | | 陈琰钰 | Datawhale成员,清华大学深圳研究生院研一 | https://cyy0214.github.io/ | 47 | | 李嘉骐 | 清华大学自动化系在读博士 | https://www.zhihu.com/people/li-jia-qi-16-9/posts | 48 | 49 | 教程贡献情况: 50 | 51 | 李祖贤: CH2、CH4、CH5 52 | 53 | 薛传雨:CH3 54 | 55 | 杨毅远:CH6 56 | 57 | 李嘉骐:CH3优化 58 | 59 | 组队学习贡献情况: 60 | 61 | 赵可:长期学习流程设计、组织协调、23期运营&作业评审(task1)、24期运营&作业评审(task3) 62 | 63 | 李祖贤:23期答疑&直播(3次)&作业评审(task3&4)、24期答疑&直播(3次)&作业评审(task4&5) 64 | 65 | 薛传雨:23期运营&答疑&作业评审(task5)、24期运营 66 | 67 | 陈琰钰:23期作业评审(task2&6) 68 | 69 | 杨毅远:23期答疑 70 | 71 | 李嘉骐:24期答疑&作业评审(task1&2) 72 | 73 | (四) 课程编排与使用方法 74 | 75 | - 课程编排: 76 | 课程现分为三个阶段,大致可以分为:机器学习模型回顾,集成学习方法的进阶, 集成学习项目的实践。 77 | 1. 第一部分:当我们可以比较熟练的操作数据并认识这个数据之后,我们需要开始数据清洗以及重 78 | 构, 将原始数据变为一个可用好用的数据, 基于sklearn构建模型以及模型评价,在这个部分我们会重点详细学习各个基础模型的原理以及sklearn的各个参数。 79 | 2. 第二部分:我们要使用sklearn, xgboost, lightgbm以及mIxtend库去学习集成学习的具体方法以及原理底层。 80 | 3. 第三单元:通过前面的理论学习,现在可以开始进行实践了,这里有两个大型集成学习项目的实践。 81 | - 使用方法: 82 | 我们的代码都是jupyter notebook和markdown形式, 我们在每一章后面会给出几道小习题方便大家掌握。其中的内容会作为组队学习的项目安排! 83 | 84 | ## (五) 反馈 85 | 86 | - 如果有任何想法可以联系邮箱 (1028851587@qq.com) 87 | - 如果有任何想法可以联系我们DataWhale 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /FinancialRiskControl/readme.md: -------------------------------------------------------------------------------- 1 |  2 | # 数据挖掘实践(金融风控) 3 | 4 | ## 基本信息 5 | - 贡献人员:王贺、杨冰楠、陶旭东、吴争光、苏鹏、王程伟、担扬杰、成森、陈长沙、刘雯静 6 | - 学习周期:14天 7 | - 学习形式:理论学习 + 练习 8 | - 人群定位:有一定数据分析与python编程的基础。 9 | - 先修内容:[Python编程语言](https://github.com/datawhalechina/team-learning-program/tree/master/PythonLanguage);[动手学数据分析](https://github.com/datawhalechina/hands-on-data-analysis) 10 | - 难度系数:中 11 | 12 | ## 任务安排 13 | 14 | ### Task1 赛题理解 2天 15 | 16 | - 理解赛题数据和目标,清楚评分体系。 17 | - 完成赛题报名和数据下载,理解赛题的解题思路。 18 | 19 | 20 | 21 | 22 | ### Task2 探索性数据分析(EDA)(3天) 23 | 24 | - EDA的价值主要在于熟悉数据集,了解数据集,对数据集进行验证来确定所获得数据集可以用于接下来的机器学习或者深度学习使用。 25 | - 当了解了数据集之后我们下一步就是要去了解变量间的相互关系以及变量与预测值之间的存在关系。 26 | - 引导数据科学从业者进行数据处理以及特征工程的步骤,使数据集的结构和特征集让接下来的预测问题更加可靠。 27 | - 完成对于数据的探索性分析,并对于数据进行一些图表或者文字总结并打卡。 28 | 29 | ### Task3 特征工程 3天 30 | 31 | - 对于特征进行进一步分析,并对于数据进行处理。 32 | - 完成对于特征工程的分析,并对于数据进行一些图表或者文字总结并打卡。 33 | 34 | ### Task4 建模与调参 3天 35 | 36 | - 了解常用的机器学习模型,并掌握机器学习模型的建模与调参流程。 37 | - 完成相应学习打卡任务。 38 | 39 | ### Task5 模型融合 3天 40 | 41 | - 对于多种调参完成的模型进行模型融合。 42 | - 完成对于多种模型的融合,提交融合结果并打卡。 43 | 44 | ## 学习视频 45 | 46 | ### 第1讲:赛题理解baseline讲解 47 | - 主讲人:鱼佬(王贺)武汉大学计算机硕士,天池数据科学家,2019和2020腾讯广告算法冠军 48 | - 链接:https://tianchi.aliyun.com/course/video?liveId=41203 49 | 50 | ### 第2讲:数据探索性分析和特征工程 51 | - 主讲人:言溪(陶旭东):北京师范大学硕士 ,算法工程师 52 | - 链接:https://tianchi.aliyun.com/course/live?liveId=41204 53 | 54 | ### 第3讲:建模调参,模型融合 55 | - 主讲人:小一(吴争光)Datawhale成员,金融风控爱好者,数据分析工程师 56 | - 链接:https://tianchi.aliyun.com/course/live?liveId=41206 -------------------------------------------------------------------------------- /FinancialRiskControl/直播PPT/贷款违约预测_建模调参与模型融合.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/FinancialRiskControl/直播PPT/贷款违约预测_建模调参与模型融合.pdf -------------------------------------------------------------------------------- /FinancialRiskControl/直播PPT/贷款违约预测_数据探索性分析和特征工程.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/FinancialRiskControl/直播PPT/贷款违约预测_数据探索性分析和特征工程.pdf -------------------------------------------------------------------------------- /FinancialRiskControl/直播PPT/贷款违约预测_赛题理解与基线方案.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/FinancialRiskControl/直播PPT/贷款违约预测_赛题理解与基线方案.pptx -------------------------------------------------------------------------------- /HandsOnDataAnalysis/readme.md: -------------------------------------------------------------------------------- 1 | # 动手学数据分析 2 | 3 | 开源内容:https://github.com/datawhalechina/hands-on-data-analysis 4 | 5 | 6 | 7 | 8 | ## 基本信息 9 | 10 | - 学习周期:10天,每天学习3~5个小时 11 | - 学习形式:使用jupyter完成课程版块的内容,并做笔记或者写博客。 12 | - 人群定位:懂一些python,希望入门数据分析的学习者。 13 | - 先修内容:[Python编程语言](https://github.com/datawhalechina/team-learning-program/tree/master/PythonLanguage),[编程实践(Pandas)](https://github.com/datawhalechina/joyful-pandas) 14 | - 难度系数:低 15 | 16 | 17 | 18 | 19 | ## 学习目标 20 | 21 | 了解数据分析中基本库的操作(比如:pandas,numpy和matplotlib);熟悉数据分析的操作流程,建立数据分析思维,入门数据建模。 22 | 23 | ## 任务安排 24 | 25 | 26 | ### Task01:数据加载及探索性数据分析(2天) 27 | - 了解数据加载以及数据观察 28 | - 掌握pandas基础 29 | - 完成探索性数据分析 30 | 31 | *主要学习内容是*:课程的第一章 32 | 33 | ### Task02:数据清洗及特征处理(2天) 34 | - 掌握数据清洗的方法 35 | - 了解特征观察与处理 36 | 37 | *主要学习内容是*:课程的第二章的第一部分(数据清洗及特征处理) 38 | 39 | ### Task03:数据重构(2天) 40 | - 了解数据重构的方法 41 | - 使用groupby做数据运算 42 | 43 | *主要学习内容是*:课程的第二章第二和第三部分(数据重构) 44 | 45 | ### Task04:数据可视化(2天) 46 | - 了解可视化的目的 47 | - 知道各种图形可用于的场景 48 | - 实战数据可视化的基本库 49 | 50 | *主要学习内容是*:课程的第二章第四部分(数据可视化) 51 | 52 | ### Task05:数据建模及模型评估(2天) 53 | - 了解数据建模 54 | - 使用sklearn完成分类模型的建模 55 | - 了解模型评估 56 | - 使用sklearn完成模型评估 57 | 58 | *主要学习内容是*:课程的第三章(数据建模及模型评估) 59 | 60 | 61 | --- 62 | # 贡献人员 63 | 64 | 65 | 姓名 | 博客|备注 66 | ---|---|--- 67 | 陈安东|[GitHub](https://github.com/andongBlue),[知乎](https://www.zhihu.com/people/wang-ya-fei-48)|中央民族大学研究生 68 | 金娟娟|[知乎](https://www.zhihu.com/people/wu-shi-lan-xiao-wang-zi)|浙江大学硕士 业务与数据分析师 69 | 李玲|[知乎](https://www.zhihu.com/people/liu-yu-18-38)|算法工程师 70 | 老表|微信公众号:简说Python|数据分析爱好者 71 | 杨佳达|[Github](https://github.com/yangjiada)|数据挖掘师 72 | 张文涛|[Github](https://github.com/Fatflower)|中山大学博士研究生 73 | 高立业|[Github](https://github.com/0-yy-0)|太原理工大学研究生 74 | 75 | -------------------------------------------------------------------------------- /HeartbeatClassification/readme.md: -------------------------------------------------------------------------------- 1 | # 心电图心跳信号分类 2 | 3 | ## 贡献者信息 4 | 5 | | 姓名 | 介绍 | 个人主页 | 6 | | -------------------- | ----------------------------------- | ----------------------------------------- | 7 | | **鱼佬** | 武汉大学,Datawhale成员,Coggle开源小组成员 | https://www.zhihu.com/people/wang-he-13-93 | 8 | | 牧小熊 | 华中农业大学研究生,Datawhale优秀原创作者,Coggle开源小组成员 | https://www.zhihu.com/people/muxiaoxiong | 9 | | 吉米杜 | 平安NLP算法工程师,Datawhale成员,Coggle开源小组成员 | https://blog.csdn.net/duxiaodong1122?spm=1011.2124.3001.5343&type=blog | 10 | | 张晋 | Datawhale成员,算法竞赛爱好者 | https://blog.csdn.net/weixin_44585839/ | 11 | | 王皓月 | 华东师范大学数据科学与工程学院,Coggle开源小组成员 | https://github.com/sunshinemingo | 12 | 13 | 14 | ## 基本信息 15 | 16 | - 贡献人员:**鱼佬**,牧小熊,吉米杜,张晋,王皓月 17 | - 学习周期:15天,每天平均花费时间2小时-5小时不等,根据个人学习接受能力强弱有所浮动。 18 | - 学习形式:理论+实践 19 | - 人群定位:熟悉数据挖掘的基本方法,对学习时间序列相关问题和医学大数据有需求的学员。 20 | - 先修内容:[Python编程语言](https://github.com/datawhalechina/team-learning-program/tree/master/Python-Language)、[编程实践(Numpy)](https://github.com/datawhalechina/team-learning-program/tree/master/IntroductionToNumpy)、[编程实践(Pandas)](https://github.com/datawhalechina/team-learning-program/tree/master/IntroductionToPandas)、[编程实践(数据可视化)](https://github.com/datawhalechina/fantastic-matplotlib) 21 | 22 | 23 | ## 任务安排 24 | 25 | ### Task1 赛题理解及baseline学习 2天 26 | 27 | - 理解赛题数据和目标,清楚评分体系。 28 | - 完成赛题报名和数据下载,理解赛题的解题思路。 29 | - 学习baseline方案,并成功运行提交结果。 30 | 31 | 32 | ### Task2 探索性数据分析(EDA)(3天) 33 | 34 | - EDA的价值主要在于熟悉数据集,了解数据集,对数据集进行验证来确定所获得数据集可以用于接下来的机器学习或者深度学习使用。 35 | - 当了解了数据集之后我们下一步就是要去了解变量间的相互关系以及变量与预测值之间的存在关系。 36 | - 引导数据科学从业者进行数据处理以及特征工程的步骤,使数据集的结构和特征集让接下来的预测问题更加可靠。 37 | - 完成对于数据的探索性分析,并对于数据进行一些图表或者文字总结并打卡。 38 | 39 | ### Task3 特征工程 3天 40 | 41 | - 对于特征进行进一步分析,并对于数据进行处理。 42 | - 完成对于特征工程的分析,并对于数据进行一些图表或者文字总结并打卡。 43 | 44 | ### Task4 建模与调参 3天 45 | 46 | - 了解常用的机器学习模型,并掌握机器学习模型的建模与调参流程。 47 | - 完成相应学习打卡任务。 48 | 49 | ### Task5 模型融合 3天 50 | 51 | - 对于多种调参完成的模型进行模型融合。 52 | - 完成对于多种模型的融合,提交融合结果并打卡。 53 | 54 | ## 学习视频 55 | 56 | ### 第1讲:赛题理解baseline讲解 57 | - 主讲人: 58 | - 链接: 59 | 60 | ### 第2讲:数据探索性分析和特征工程 61 | - 主讲人: 62 | - 链接: 63 | 64 | ### 第3讲:建模调参,模型融合 65 | - 主讲人: 66 | - 链接 67 | 68 | **关于Datawhale**: 69 | 70 | >Datawhale是一个专注于数据科学与AI领域的开源组织,汇集了众多领域院校和知名企业的优秀学习者,聚合了一群有开源精神和探索精神的团队成员。Datawhale以“for the learner,和学习者一起成长”为愿景,鼓励真实地展现自我、开放包容、互信互助、敢于试错和勇于担当。同时Datawhale 用开源的理念去探索开源内容、开源学习和开源方案,赋能人才培养,助力人才成长,建立起人与人,人与知识,人与企业和人与未来的联结。 71 | 72 | ​ 73 | -------------------------------------------------------------------------------- /IntelligentComputing/粒子群算法_Matlab.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/IntelligentComputing/粒子群算法_Matlab.txt -------------------------------------------------------------------------------- /IntroductionExperienceAI/readme.md: -------------------------------------------------------------------------------- 1 | ![](https://img-blog.csdnimg.cn/20200811155743276.png) 2 | 3 | 4 | 我们把以下内容开源在了国内阿里云社区。阿里云作为Datawhale开源支持方,将提供免配置运行环境和免费算力支持。 5 | 6 | # 监督学习部分 7 | 8 | ## [逻辑回归(负责人:王茂霖)](https://developer.aliyun.com/ai/scenario/9ad3416619b1423180f656d1c9ae44f7) 9 | 10 | 11 | 逻辑回归(Logistic regression,简称LR)虽然其中带有"回归"两个字,但逻辑回归其实是一个分类模型,并且广泛应用于各个领域之中。虽然现在深度学习相对于这些传统方法更为火热,但实则这些传统方法由于其独特的优势依然广泛应用于各个领域中。而对于逻辑回归而言,最为突出的两点就是其模型简单和模型的可解释性强。 12 | 13 | 14 | 15 | ## [SVM(负责人:阿泽)](https://developer.aliyun.com/ai/scenario/b6c1ef3172d84236ae10c3b91798a796) 16 | 17 | 支持向量机(Support Vector Machine,SVM)是一个非常优雅的算法,具有非常完善的数学理论,常用于数据分类,也可以用于数据的回归预测中,由于其优美的理论保证和利用核函数对于线性不可分问题的处理技巧, 在上世纪90年代左右,SVM曾红极一时。 本文将不涉及非常严格和复杂的理论知识,力求于通过直觉来感受 SVM。 18 | 19 | ## [决策树(负责人:小雨姑娘)](https://developer.aliyun.com/ai/scenario/bb2fe211e5e94017840ce42cc31fe621) 20 | 21 | 决策树是一种常见的分类模型,在金融分控、医疗辅助诊断等诸多行业具有较为广泛的应用。决策树的核心思想是基于树结构对数据进行划分,这种思想是人类处理问题时的本能方法。例如在婚恋市场中,女方通常会先看男方是否有房产,如果有房产再看是否有车产,如果有车产再看是否有稳定工作……最后得出是否要深入了解的判断。 22 | 23 | 24 | ## [K邻近(负责人:肖然)](https://developer.aliyun.com/ai/scenario/febc2223e46f419dae84df47b1760ffc) 25 | 26 | kNN(k-nearest neighbors),中文翻译K近邻。我们常常听到一个故事如果要了解U的经济水平,只需要知道他最好的5个朋友的经济能力,对他的这五个人的经济水平求平均就是这个人的经济水平。这句话里面就包含着kNN的算法思想。 27 | 28 | ![](https://img-blog.csdnimg.cn/20200811155116700.png) 29 | 30 | 示例 :如上图,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。 31 | 32 | ## [lightGBM(负责人:小雨姑娘)](https://developer.aliyun.com/ai/scenario/50d137a28dcc41fb85f716b782eefabd) 33 | 34 | LightGBM是2017年由微软推出的可扩展机器学习系统,是微软旗下DMKT的一个开源项目,由2014年首届阿里巴巴大数据竞赛获胜者之一柯国霖老师带领开发。它是一款基于GBDT(梯度提升决策树)算法的分布式梯度提升框架,为了满足缩短模型计算时间的需求,LightGBM的设计思路主要集中在减小数据对内存与计算性能的使用,以及减少多机器并行计算时的通讯代价。 35 | 36 | LightGBM可以看作是XGBoost的升级豪华版,在获得与XGBoost近似精度的同时,又提供了更快的训练速度与更少的内存消耗。正如其名字中的Light所蕴含的那样,LightGBM在大规模数据集上跑起来更加优雅轻盈,一经推出便成为各种数据竞赛中刷榜夺冠的神兵利器。 37 | 38 | 39 | # 非监督学习部分 40 | 41 | ## [线性判别分析(负责人:小武)](https://developer.aliyun.com/ai/scenario/e61bf23a41fc4c01b376520317ea13e1) 42 | 43 | 线性判别模型(LDA)在模式识别领域(比如人脸识别等图形图像识别领域)中有非常广泛的应用。LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。即:将数据投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近方法。 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /LinearAlgebra/第01章 线性方程组/1.1 线性方程组的消元法.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 第一章 线性方程组 4 | 5 | ##### 马燕鹏,华北电力大学 6 | ##### Github:https://github.com/datawhalechina 7 | ##### CSDN:https://lsgogroup.blog.csdn.net 8 | 9 | --- 10 | 11 | 12 | ## 1.1 线性方程组的消元法 13 | - 1.1.1 引例 14 | - 1.1.2 利用矩阵推演高斯消元法 15 | - 1.1.3 矩阵的初等变换 16 | - 1.1.4 矩阵的基本概念 17 | - 1.1.5 练习 18 | 19 | --- 20 | 21 | ### 1.1.1 引例 22 | 23 | 24 | $$ 25 | \left \{ 26 | \begin{array}{c} 27 | 2x_1+x_2+x_3=4 \\ 28 | 4x_1+3x_2+3x_3+x_4=11\\ 29 | 8x_1+7x_2+9x_3+5x_4=29\\ 30 | 6x_1+7x_2+9x_3+8x_4=30 31 | \end{array}\right. 32 | $$ 33 | 34 | ==**概念:**== 35 | 1. 线性方程组等价 36 | 2. 线性方程组的三种等价变换 37 | 3. 高斯(Gauss)消元法 38 | 39 | --- 40 | 41 | ### 1.1.2 利用矩阵推演高斯消元法 42 | 43 | $$ 44 | A = \begin{bmatrix} 45 | 2&1&1&0\\ 46 | 4&3&3&1\\ 47 | 8&7&9&5\\ 48 | 6&7&9&8 49 | \end{bmatrix}, 50 | x = \begin{bmatrix} 51 | x_1\\ 52 | x_2\\ 53 | x_3\\ 54 | x_4 55 | \end{bmatrix}, 56 | b = \begin{bmatrix} 57 | 4\\ 58 | 11\\ 59 | 29\\ 60 | 30 61 | \end{bmatrix} 62 | $$ 63 | 64 | $$ 65 | B =\left(A,b \right) =\begin{bmatrix} 66 | 2&1&1&0&4\\ 67 | 4&3&3&1&11\\ 68 | 8&7&9&5&29\\ 69 | 6&7&9&8&30 70 | \end{bmatrix} 71 | $$ 72 | 73 | --- 74 | ==**概念:**== 75 | 76 | 1. 系数矩阵 77 | 2. 增广矩阵 78 | 3. 线性方程组的矩阵表示 79 | 80 | ==**方法论**:== 81 | 1. 利用矩阵推演高斯消元法 82 | 83 | --- 84 | 85 | ### 1.1.3 矩阵的初等变换 86 | 87 | ==**概念:**== 88 | 1. 矩阵的初等变换 89 | 2. 矩阵等价 90 | - 矩阵行等价(线性方程组等价) 91 | - 矩阵列等价 92 | 5. 矩阵等价的性质 93 | 94 | --- 95 | 96 | ### 1.1.4 矩阵的基本概念 97 | 98 | ==**概念:**== 99 | 1. 矩阵(Matrix)的定义 100 | 2. 矩阵的表示 101 | 3. 特殊矩阵 102 | 103 | 104 | --- 105 | ### 1.1.5 练习 106 | 107 | 1. 写出下列方程组的系数矩阵和增广矩阵 108 | 109 | $$ 110 | \left( 1\right) 111 | \left \{ 112 | \begin{array}{c} 113 | x_1-3x_2+4x_3=-4 \\ 114 | 3x_1-7x_2+7x_3=-8\\ 115 | -4x_1+6x_2-x_3=7 116 | \end{array} 117 | \right. 118 | $$ 119 | 120 | $$ 121 | \left( 2\right) 122 | \left \{ 123 | \begin{array}{c} 124 | x_1-x_3=8 \\ 125 | 2x_1+2x_2+9x_3=7\\ 126 | x_2+5x_3=-2 127 | \end{array} 128 | \right. 129 | $$ 130 | 131 | --- 132 | (2)如果以下矩阵为某个线性方程组的增广矩阵,试写出其对应的线性方程组。 133 | $$ 134 | \left( 1\right) 135 | B =\begin{bmatrix} 136 | 2&1&-1&2\\ 137 | 3&-2&1&7\\ 138 | 1&-3&-2&-7 139 | \end{bmatrix} 140 | $$ 141 | 142 | $$ 143 | \left( 2\right) 144 | B =\begin{bmatrix} 145 | 0&1&1&1&0\\ 146 | 3&0&3&-4&7\\ 147 | 1&1&1&2&6\\ 148 | 2&3&1&3&6 149 | \end{bmatrix} 150 | $$ 151 | 152 | --- 153 | (3)已知某个线性方程组的增广矩阵已用初等行变换化成了如下形式: 154 | 155 | $$ 156 | \begin{bmatrix} 157 | 1&-1&0&0&4\\ 158 | 0&1&-3&0&-7\\ 159 | 0&0&1&-3&-1\\ 160 | 0&0&0&2&4 161 | \end{bmatrix} 162 | $$ 163 | 164 | 试进行适当的行变换并求出原方程组的解。 165 | 166 | 167 | 168 | -------------------------------------------------------------------------------- /LinearAlgebra/第01章 线性方程组/1.1 线性方程组的消元法.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/LinearAlgebra/第01章 线性方程组/1.1 线性方程组的消元法.pdf -------------------------------------------------------------------------------- /LinearAlgebra/第01章 线性方程组/1.2 方程组与矩阵.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 第一章 线性方程组 4 | 5 | ##### 马燕鹏,华北电力大学 6 | ##### Github:https://github.com/datawhalechina 7 | ##### CSDN:https://lsgogroup.blog.csdn.net 8 | 9 | 10 | --- 11 | 12 | 13 | ## 1.2 方程组与矩阵 14 | 15 | - 1.2.1 线性方程组的矩阵表示 16 | - 1.2.2 矩阵初等变换的应用 17 | - 1.2.3 练习 18 | 19 | --- 20 | ### 1.2.1 线性方程组的矩阵表示 21 | 22 | 非齐次线性方程组: 23 | $$ 24 | \left \{ 25 | \begin{array}{c} 26 | a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=b_1 \\ 27 | a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2 \\ 28 | \cdots\\ 29 | a_{m1}x_1+a_{m2}x_2+\cdots+a_{mn}x_n=b_m 30 | \end{array} 31 | \right. 32 | $$ 33 | 34 | $Ax=b$,是否有解问题,若有解是唯一解还是无穷多解。 35 | 36 | --- 37 | 齐次线性方程组: 38 | 39 | $$ 40 | \left \{ 41 | \begin{array}{c} 42 | a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=0 \\ 43 | a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=0 \\ 44 | \cdots\\ 45 | a_{m1}x_1+a_{m2}x_2+\cdots+a_{mn}x_n=0 46 | \end{array} 47 | \right. 48 | $$ 49 | 50 | $Ax=0$,是否有非零解问题。 51 | 52 | ==**概念**==: 53 | 1. 线性方程组的分类(非齐次,齐次) 54 | 2. 线性方程组的相容性 55 | 56 | --- 57 | ### 1.2.2 矩阵初等变换的应用 58 | 59 | (1)讨论方程组的相容性。 60 | 61 | $$ 62 | \left \{ 63 | \begin{array}{c} 64 | 2x_1-x_2-x_3+x_4=2 \\ 65 | x_1+x_2-2x_3+x_4=4\\ 66 | 4x_1-6x_2+2x_3-2x_4=4\\ 67 | 3x_1+6x_2-9x_3+7x_4=9 68 | \end{array} 69 | \right. 70 | $$ 71 | 72 | --- 73 | (2)讨论方程组的相容性。 74 | 75 | $$ 76 | \left \{ 77 | \begin{array}{c} 78 | x_2+4x_3=-5 \\ 79 | x_1+3x_2+5x_3=-2\\ 80 | 3x_1+7x_2+7x_3=6 81 | \end{array} 82 | \right. 83 | $$ 84 | 85 | (3)当$h$和$k$取何值时,下列方程相容。 86 | 87 | $$ 88 | \left \{ 89 | \begin{array}{c} 90 | 2x_1-x_2=h \\ 91 | -6x_1+3x_2=k 92 | \end{array} 93 | \right. 94 | $$ 95 | 96 | --- 97 | ==**概念:**== 98 | 1. 行阶梯形 99 | 2. 行最简形 100 | 3. 线性方程组的通解 101 | 4. 标准形 102 | 5. 矩阵的秩 103 | 104 | 105 | --- 106 | ### 1.2.3 练习 107 | 108 | (1)下列矩阵哪些是行最简形,哪些不是行最简形,并将不是行最简形的矩阵采用初等行变换将其化为行最简形。 109 | 110 | $$ 111 | \left( 1\right) 112 | \begin{bmatrix} 113 | 1&0&0&2\\ 114 | 0&1&0&3\\ 115 | 0&0&1&5 116 | \end{bmatrix}, 117 | \left( 2\right) 118 | \begin{bmatrix} 119 | 1&1&0&0\\ 120 | 0&1&1&0\\ 121 | 0&0&1&1 122 | \end{bmatrix} 123 | $$ 124 | 125 | $$ 126 | \left( 3\right) 127 | \begin{bmatrix} 128 | 1&0&0&0\\ 129 | 1&1&0&0\\ 130 | 0&1&1&0\\ 131 | 0&0&1&1 132 | \end{bmatrix}, 133 | \left( 4\right) 134 | \begin{bmatrix} 135 | 0&1&1&1&1\\ 136 | 0&0&2&2&2\\ 137 | 0&0&0&0&3\\ 138 | 0&0&0&0&0 139 | \end{bmatrix} 140 | $$ 141 | 142 | --- 143 | (2)指出矩阵$A=\begin{bmatrix}0&0&0&1\\1&1&0&0\\1&1&2&3\end{bmatrix}$的先导列和主元列。 144 | 145 | (3)主元位置上的元素就是主元。(⨉) 146 | 147 | 148 | ==**注意**:== 149 | 150 | - 先导列,行首非零元所在列;主元列,对应行阶梯形的先导列。 151 | - 先导列可以相同,主元列一定不同;先导列一看便知,主元列需要计算才能确定。 152 | 153 | 154 | --- 155 | ==**概念**== 156 | 1. 先导元 157 | 2. 先导列 158 | 3. 主元位置 159 | 4. 主元列 160 | 5. 主元 161 | 162 | -------------------------------------------------------------------------------- /LinearAlgebra/第01章 线性方程组/1.2 方程组与矩阵.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/LinearAlgebra/第01章 线性方程组/1.2 方程组与矩阵.pdf -------------------------------------------------------------------------------- /LinearAlgebra/第01章 线性方程组/1.3 矩阵的秩及方程组解的判别.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 第一章 线性方程组 4 | 5 | ##### 马燕鹏,华北电力大学 6 | ##### Github:https://github.com/datawhalechina 7 | ##### CSDN:https://lsgogroup.blog.csdn.net 8 | 9 | --- 10 | 11 | 12 | ## 1.3 矩阵的秩及方程组解的判别 13 | 14 | - 1.3.1 矩阵的秩 15 | - 1.3.2 线性方程组解的存在性 16 | - 1.3.3 线性方程组的解法 17 | - 1.3.4 练习 18 | 19 | --- 20 | ### 1.3.1 矩阵的秩 21 | 22 | ==**概念:**== 23 | 24 | 1. 矩阵秩的定义 25 | 2. 矩阵秩的性质 26 | 27 | - $A=0$,则$R(A)=0$ 28 | - $A \sim B$,则$R(A)=R(B)$ 29 | - $R(A_{m \times n})\leq min(m,n)$ 30 | 31 | --- 32 | ### 1.3.2 线性方程组解的存在性 33 | 34 | ==**定理**==:$n$元齐次线性方程组$A_{m\times n}x=0$有非零解的充要条件。 35 | 36 | 37 | ==**定理**==:$n$元非齐次线性方程组$A_{m\times n}x=b$有解的充要条件。 38 | 39 | --- 40 | ### 1.3.3 线性方程组的解法 41 | 42 | ==**方法论:**== 43 | 44 | 1. 线性方程组的解法 45 | 46 | **Step01**:系数矩阵$A$(增广矩阵$(A,b)$)化行阶梯形。 47 | **Step02**:判断方程组是否有非零解$R(A) 2 | 3 | # 第二章 矩阵及其运算 4 | 5 | ##### 马燕鹏,华北电力大学 6 | ##### Github:https://github.com/datawhalechina 7 | ##### CSDN:https://lsgogroup.blog.csdn.net 8 | 9 | --- 10 | 11 | 12 | ## 2.1 矩阵的基本运算 13 | - 2.1.1 矩阵的加法 14 | - 2.1.2 矩阵的数乘 15 | - 2.1.3 矩阵的乘法 16 | - 2.1.4 方阵的乘幂 17 | - 2.1.5 方阵的迹 18 | - 2.1.6 矩阵的转置 19 | 20 | --- 21 | 22 | ### 2.1.1 矩阵的加法 23 | 24 | $$ 25 | A = (a_{ij})_{m\times n},B=(b_{ij})_{m\times n} 26 | $$ 27 | 28 | $$ 29 | C=A+B = (c_{ij})_{m\times n}=(a_{ij}+b_{ij})_{m\times n} 30 | $$ 31 | 32 | ==**概念:**== 33 | 1. 矩阵加法的定义 34 | 2. 矩阵减法的定义 35 | 3. 矩阵加法的运算律 36 | 37 | --- 38 | 39 | ### 2.1.2 矩阵的数乘 40 | 41 | $$ 42 | A = (a_{ij})_{m\times n} 43 | $$ 44 | 45 | $$ 46 | \lambda A = A\lambda= (\lambda a_{ij})_{m\times n} 47 | $$ 48 | 49 | ==**概念:**== 50 | 1. 矩阵数乘的定义 51 | 2. 矩阵数乘的运算律 52 | 3. 矩阵的线性运算 53 | 54 | --- 55 | ### 2.1.3 矩阵的乘法 56 | 57 | $$ 58 | A = (a_{ij})_{m\times s},B=(b_{ij})_{s\times n} 59 | $$ 60 | 61 | $$ 62 | C=A\times B = (c_{ij})_{m\times n} 63 | $$ 64 | 65 | $$ 66 | c_{ij}=\sum^{s}_{k = 1}{a_{ik}\times b_{kj}},i=1,2,\cdots,m;j=1,2,\cdots,n 67 | $$ 68 | 69 | 70 | 71 | --- 72 | 73 | (1)计算$A\times B$和$B \times A$。 74 | 75 | $$ 76 | A = \begin{bmatrix} 77 | -2&4\\ 78 | 1&-2 79 | \end{bmatrix}, 80 | B = \begin{bmatrix} 81 | 2&4\\ 82 | -3&-6 83 | \end{bmatrix} 84 | $$ 85 | 86 | ==**概念:**== 87 | 1. 矩阵乘法的定义 88 | 2. 矩阵乘法的运算律 89 | 3. 特殊的矩阵乘法 90 | 91 | --- 92 | 93 | ### 2.1.4 方阵的乘幂 94 | 95 | 96 | $$ 97 | A^k_{n\times n} = A\times A \cdots \times A 98 | $$ 99 | 100 | 101 | 102 | (1)计算$A^3$,其中$A= \begin{bmatrix} 0&1&1\\0&0&1 \\0&0&0 \end{bmatrix}$。 103 | 104 | 105 | (2)计算$A^2$,其中$A= \begin{bmatrix} 1&1&1\\0&0&0 \\0&0&0 \end{bmatrix}$。 106 | 107 | 108 | --- 109 | 110 | ==**概念:**== 111 | 1. 方阵乘幂的定义 112 | 2. 方阵乘幂的性质 113 | 3. 幂零矩阵的定义 114 | 4. 幂等矩阵的定义 115 | 116 | 117 | --- 118 | 119 | ### 2.1.5 方阵的迹 120 | 121 | $$ 122 | A = (a_{ij})_{n\times n} 123 | $$ 124 | 125 | $$ 126 | tr(A) = a_{11}+a_{22}+\cdots+a_{nn} = \sum^{n}_{i=1}{a_{ii}} 127 | $$ 128 | 129 | 130 | ==**证明:**==$tr(AB)=tr(BA)$。 131 | 132 | ==**证明:**==$tr(ABC)=tr(CAB)=tr(BCA)$。 133 | 134 | 135 | --- 136 | ==**概念:**== 137 | 1. 方阵迹的定义 138 | 2. 方阵迹的相关定理与推论 139 | 140 | 141 | 142 | --- 143 | ### 2.1.6 矩阵的转置 144 | 145 | $$ 146 | A = \begin{bmatrix} 147 | 1&2&3&4\\ 148 | 4&3&2&8\\ 149 | 7&3&8&2 150 | \end{bmatrix}, 151 | A^T=\begin{bmatrix} 152 | 1&4&7\\ 153 | 2&3&3\\ 154 | 3&2&8\\ 155 | 4&8&2 156 | \end{bmatrix} 157 | $$ 158 | 159 | ==**概念:**== 160 | 1. 矩阵转置的定义 161 | 2. 对称矩阵与反对称矩阵 162 | 3. 矩阵转置的性质 163 | 164 | 165 | --- 166 | ==**证明:**== 167 | 1. $(A\times B)^T=B^T\times A^T$。 168 | 2. 对任何矩阵$A_{m\times n}$,$A^TA$与$AA^T$均为对称矩阵。 169 | 3. 任意$n$阶方阵都可分解为一个对称矩阵和一个反对称矩阵之和。 170 | 4. 设$A,B$都是对称矩阵,证明$AB$为对称矩阵的充要条件是$AB=BA$。 171 | -------------------------------------------------------------------------------- /LinearAlgebra/第02章 矩阵及其运算/2.1 矩阵的基本运算.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/LinearAlgebra/第02章 矩阵及其运算/2.1 矩阵的基本运算.pdf -------------------------------------------------------------------------------- /LinearAlgebra/第02章 矩阵及其运算/2.2 分块矩阵及运算.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/LinearAlgebra/第02章 矩阵及其运算/2.2 分块矩阵及运算.pdf -------------------------------------------------------------------------------- /LinearAlgebra/第02章 矩阵及其运算/2.3 逆矩阵.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/LinearAlgebra/第02章 矩阵及其运算/2.3 逆矩阵.pdf -------------------------------------------------------------------------------- /LinearAlgebra/第02章 矩阵及其运算/2.4 方阵的行列式.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/LinearAlgebra/第02章 矩阵及其运算/2.4 方阵的行列式.pdf -------------------------------------------------------------------------------- /LinearAlgebra/第02章 矩阵及其运算/2.5 矩阵LU分解.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 第二章 矩阵及其运算 4 | 5 | ##### 马燕鹏,华北电力大学 6 | ##### Github:https://github.com/datawhalechina 7 | ##### CSDN:https://lsgogroup.blog.csdn.net 8 | 9 | 10 | 11 | --- 12 | 13 | 14 | ## 2.5 矩阵LU分解 15 | - 2.5.1 $LU$分解的概念 16 | - 2.5.2 $LU$分解的应用 17 | 18 | --- 19 | ### 2.5.1 $LU$分解的概念 20 | 21 | $$ 22 | \left \{ 23 | \begin{array}{c} 24 | 2x_1+x_2+x_3=4 \\ 25 | 4x_1+3x_2+3x_3+x_4=11 \\ 26 | 8x_1+7x_2+9x_3+5x_4=29\\ 27 | 6x_1+7x_2+9x_3+8x_4=30 28 | \end{array} 29 | \right. 30 | $$ 31 | 32 | $$ 33 | A=\begin{bmatrix} 34 | 2&1&1&0\\ 35 | 4&3&3&1\\ 36 | 8&7&9&5\\ 37 | 6&7&9&8 38 | \end{bmatrix},A=LU 39 | $$ 40 | 41 | --- 42 | $$ 43 | L=\begin{bmatrix} 44 | 1&0&0&0\\ 45 | 2&1&0&0\\ 46 | 4&3&1&0\\ 47 | 3&4&1&1 48 | \end{bmatrix}, 49 | U=\begin{bmatrix} 50 | 2&1&1&0\\ 51 | 0&1&1&1\\ 52 | 0&0&2&2\\ 53 | 0&0&0&2 54 | \end{bmatrix} 55 | $$ 56 | 57 | 矩阵的分解是把矩阵$A$表示成两个或多个矩阵的乘积。 58 | 59 | 60 | $A=LU$是关于高斯消元法的全新认知,也是最基础的矩阵分解。 61 | 62 | 63 | 一般地,设$A$是$n$阶可逆矩阵,若存在$n$阶下三角形且主对角元素全为1的矩阵$L$,$U$是与$A$等价的上三角形矩阵,满足$A=LU$,则称为$A$的$LU$分解。 64 | 65 | --- 66 | ### 2.5.2 $LU$分解的应用 67 | 68 | 69 | $$ 70 | Ax=b,A=LU 71 | $$ 72 | 73 | $$ 74 | LUx=b,Ly=b,Ux=y 75 | $$ 76 | 77 | ==**概念:**== 78 | 1. 矩阵分解 79 | 80 | ==**方法论:**== 81 | 1. 矩阵的$LU$分解 82 | 2. 利用矩阵$LU$分解求解线性方程组 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /LinearAlgebra/第02章 矩阵及其运算/2.5 矩阵LU分解.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/LinearAlgebra/第02章 矩阵及其运算/2.5 矩阵LU分解.pdf -------------------------------------------------------------------------------- /LinearAlgebra/第03章 向量空间/3.1 基本概念.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/LinearAlgebra/第03章 向量空间/3.1 基本概念.pdf -------------------------------------------------------------------------------- /LinearAlgebra/第03章 向量空间/3.2 线性相关与线性无关.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/LinearAlgebra/第03章 向量空间/3.2 线性相关与线性无关.pdf -------------------------------------------------------------------------------- /LinearAlgebra/第03章 向量空间/3.3 向量空间的基与维数,坐标,过渡矩阵.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/LinearAlgebra/第03章 向量空间/3.3 向量空间的基与维数,坐标,过渡矩阵.pdf -------------------------------------------------------------------------------- /LinearAlgebra/第03章 向量空间/3.4 矩阵的零空间,列空间,线性方程组解的结构.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 第三章 向量空间 4 | 5 | ##### 马燕鹏,华北电力大学 6 | ##### Github:https://github.com/datawhalechina 7 | ##### CSDN:https://lsgogroup.blog.csdn.net 8 | 9 | 10 | --- 11 | 12 | ## 3.4 矩阵的零空间,列空间,线性方程组解的结构 13 | - 3.4.1 齐次线性方程组解的结构 14 | - 3.4.2 非齐次线性方程组解的结构 15 | - 3.4.3 秩定理 16 | - 3.3.4 练习 17 | 18 | --- 19 | ### 3.4.1 齐次线性方程组解的结构 20 | 21 | 齐次线性方程组(1): 22 | 23 | $$ 24 | \left \{ 25 | \begin{array}{c} 26 | a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=0 \\ 27 | a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=0 \\ 28 | \cdots\\ 29 | a_{m1}x_1+a_{m2}x_2+\cdots+a_{mn}x_n=0 30 | \end{array} 31 | \right. 32 | $$ 33 | 34 | 线性方程组的矩阵表示形式(2): 35 | $$ 36 | Ax=0 37 | $$ 38 | 39 | $$ 40 | x_1\alpha_1+x_2\alpha_2+\cdots+x_n\alpha_n=0 41 | $$ 42 | 43 | --- 44 | 45 | 性质:若$x=\xi_1,x=\xi_2$为(2)的解,则$\xi_1+\xi_2$也是(2)的解。 46 | 47 | 性质:若$x=\xi$为(2)的解,则$k\xi,(k\in R)$也是(2)的解。 48 | 49 | 若$S$表示方程组(1)的全体解的集合,则以上性质为: 50 | 51 | - 若$\xi_1,\xi_2 \in S$,则$\xi_1+\xi_2 \in S$。 52 | - 若$\xi_1 \in S$,则$k\xi_1 \in S,k\in R$。 53 | 54 | 即$S$是一个向量空间,称为齐次线性方程组(1)的解空间。也称为系数矩阵$A_{m\times n}$的零空间,记作$NulA$。 55 | 56 | --- 57 | 58 | $$ 59 | NulA=\lbrace x|x\in R^n and Ax=0 \rbrace 60 | $$ 61 | 62 | 63 | ==**概念:**== 64 | 1. $Ax=0$的解空间 65 | 2. 系数矩阵$A$的零空间$NulA$ 66 | 67 | ==**方法论:**== 68 | 1. 求$NulA$的基和维数 69 | 70 | 71 | --- 72 | 定理:$n$元齐次线性方程组$A_{m\times n}x=0$的全体解所构成的集合$S$是一个向量空间,当$R(A)=r$时,解空间的维数为$n-r$。 73 | 74 | 注意: 75 | 76 | (1)解空间$S$的基是不唯一的。 77 | 78 | (2)解空间$S$的基又称为方程组(1)的基础解系。 79 | 80 | (3)当$R(A)=n$时,方程组(1)只有零解,因而没有基础解系,此时解空间只有一个零向量,为0维的向量空间。 81 | 82 | --- 83 | (4)当$R(A)理论部分 21 | 22 | - 机器学习介绍:机器学习是什么,怎么来的,理论基础是什么,为了解决什么问题。 23 | - 机器学习分类: 24 | - 按学习方式分:有监督、无监督、半监督 25 | - 按任务类型分:回归、分类、聚类、降维 生成模型与判别模型 26 | - 机器学习方法三要素: 27 | - **模型** 28 | - **策略**:损失函数 29 | - **算法**:梯度下降法、牛顿法、拟牛顿法 30 | - 模型评估指标:R2、RMSE、accuracy、precision、recall、F1、ROC、AUC、Confusion Matrix 31 | - 复杂度度量:偏差与方差、过拟合与欠拟合、结构风险与经验风险、泛化能力、正则化 32 | - 模型选择:正则化、交叉验证 33 | - 采样:样本不均衡 34 | - 特征处理:归一化、标准化、离散化、one-hot编码 35 | - 模型调优:网格搜索寻优、随机搜索寻优 36 | 37 | 38 | 39 | ### Task02:线性回归(2天) 40 | 41 | 理论部分 42 | 43 | - 模型建立:线性回归原理、线性回归模型 44 | - 学习策略:线性回归损失函数、代价函数、目标函数 45 | - 算法求解:梯度下降法、牛顿法、拟牛顿法等 46 | - 线性回归的评估指标 47 | - sklearn参数详解 48 | 49 | 50 | 练习部分 51 | 52 | 53 | - 基于线性回归的房价预测问题 54 | - 利用`sklearn`解决回归问题 55 | - `sklearn.linear_model.LinearRegression` 56 | 57 | 58 | ### Task03:逻辑回归(2天) 59 | 60 | 理论部分 61 | 62 | - 逻辑回归与线性回归的联系与区别 63 | - 模型建立:逻辑回归原理、逻辑回归模型 64 | - 学习策略:逻辑回归损失函数、推导及优化 65 | - 算法求解:批量梯度下降 66 | - 正则化与模型评估指标 67 | - 逻辑回归的优缺点 68 | - 样本不均衡问题 69 | - sklearn参数详解 70 | 71 | 72 | 练习部分 73 | 74 | 75 | - 利用`sklearn`解决分类问题 76 | - `sklearn.linear_model.LogisticRegression` 77 | - 利用梯度下降法将相同的数据分类,画图和sklearn的结果相比较 78 | - 利用牛顿法实现结果,画图和sklearn的结果相比较,并比较牛顿法和梯度下降法迭代收敛的次数 79 | 80 | 81 | ### Task04:决策树(2天) 82 | 83 | 理论部分 84 | 85 | - 特征选择:信息增益(熵、联合熵、条件熵)、信息增益比、基尼系数 86 | - 决策树生成:ID3决策树、C4.5决策树、CART决策树(CART分类树、CART回归树) 87 | - 决策树剪枝 88 | - sklearn参数详解 89 | 90 | 练习部分 91 | 92 | 93 | - 利用`sklearn`解决分类问题和回归预测。 94 | - `sklearn.tree.DecisionTreeClassifier` 95 | - `sklearn.tree.DecisionTreeRegressor` 96 | 97 | 98 | ### Task05:聚类(2天) 99 | 理论部分 100 | 101 | - 相关概念 102 | - 无监督学习 103 | - 聚类的定义 104 | - 常用距离公式 105 | - 曼哈顿距离 106 | - 欧式距离 107 | - 闵可夫斯基距离 108 | - 切比雪夫距离 109 | - 夹角余弦 110 | - 汉明距离 111 | - 杰卡德相似系数 112 | - 杰卡德距离 113 | - K-Means聚类:聚类过程和原理、算法流程、算法优化(k-means++、Mini Batch K-Means) 114 | - 层次聚类:Agglomerative Clustering过程和原理 115 | - 密度聚类:DBSCAN过程和原理 116 | - 谱聚类:谱聚类原理(邻接矩阵、度矩阵、拉普拉斯矩阵、RatioCut、Ncut)和过程 117 | - 高斯混合聚类:GMM过程和原理、EM算法原理、利用EM算法估计高斯混合聚类参数 118 | - sklearn参数详解 119 | 120 | 练习部分 121 | 122 | 123 | - 利用`sklearn`解决聚类问题。 124 | - `sklearn.cluster.KMeans` 125 | 126 | 127 | ### Task06:朴素贝叶斯(2天) 128 | 理论部分 129 | - 相关概念 130 | - 生成模型 131 | - 判别模型 132 | - 朴素贝叶斯基本原理 133 | - 条件概率公式 134 | - 乘法公式 135 | - 全概率公式 136 | - 贝叶斯定理 137 | - 特征条件独立假设 138 | - 后验概率最大化 139 | - 拉普拉斯平滑 140 | - 朴素贝叶斯的三种形式 141 | - 高斯型 142 | - 多项式型 143 | - 伯努利型 144 | - 极值问题情况下的每个类的分类概率 145 | - 下溢问题如何解决 146 | - 零概率问题如何解决 147 | - sklearn参数详解 148 | 149 | 练习部分 150 | 151 | 152 | - 利用`sklearn`解决聚类问题。 153 | - `sklearn.naive_bayes.GaussianNB` 154 | 155 | 156 | --- 157 | # 机器学习算法基础(下) 158 | 159 | ## 基本信息 160 | 161 | - 学习周期:10天,每天平均花费时间2小时-5小时不等,根据个人学习接受能力强弱有所浮动。 162 | - 学习形式:理论学习 + 练习 163 | - 人群定位:有概率论、矩阵运算、微积分、最优化理论等基础数学知识。 164 | - 先修内容:[Python编程语言](https://github.com/datawhalechina/team-learning-program/tree/master/Python-Language),[概率统计](https://github.com/datawhalechina/team-learning-data-mining/tree/master/ProbabilityStatistics) 165 | - 难度系数:中 166 | 167 | 168 | 169 | 170 | ## 任务安排 171 | 172 | ### Task01:线性回归(2天) 173 | 174 | 理论部分 175 | - 模型建立:线性回归原理、线性回归模型 176 | - 学习策略:线性回归损失函数、代价函数、目标函数 177 | - 算法求解:梯度下降法、牛顿法、拟牛顿法等 178 | - 线性回归的评估指标 179 | - sklearn参数详解 180 | 181 | 182 | 练习部分 183 | 184 | - 基于线性回归的房价预测问题 185 | - 利用`sklearn`解决回归问题 186 | - `sklearn.linear_model.LinearRegression` 187 | 188 | 189 | ### Task02:朴素贝叶斯(2天) 190 | 理论部分 191 | - 相关概念 192 | - 生成模型 193 | - 判别模型 194 | - 朴素贝叶斯基本原理 195 | - 条件概率公式 196 | - 乘法公式 197 | - 全概率公式 198 | - 贝叶斯定理 199 | - 特征条件独立假设 200 | - 后验概率最大化 201 | - 拉普拉斯平滑 202 | - 朴素贝叶斯的三种形式 203 | - 高斯型 204 | - 多项式型 205 | - 伯努利型 206 | - 极值问题情况下的每个类的分类概率 207 | - 下溢问题如何解决 208 | - 零概率问题如何解决 209 | - sklearn参数详解 210 | 211 | 练习部分 212 | 213 | - 利用`sklearn`解决聚类问题。 214 | - `sklearn.naive_bayes.GaussianNB` 215 | 216 | 217 | 218 | 219 | ### Task03:EM算法(2天) 220 | 理论部分 221 | - 相关概念 222 | - 极大似然估计法 223 | - 贝叶斯估计方法 224 | - EM基本原理 225 | - E步 226 | - M步 227 | - 推导、证明 228 | - 高斯混合分布 229 | 230 | 231 | 练习部分 232 | 233 | - 算法实现 234 | 235 | 236 | 237 | ### Task04:条件随机场(2天) 238 | 理论部分 239 | - 前提:相关概念 240 | - 马尔可夫过程 241 | - 隐马尔科夫算法 242 | - 243 | - 条件随机场 244 | - 转移特征和状态特征 245 | - 矩阵形式 246 | - 条件随机场三问题 247 | - 计算问题 248 | - 学习问题 249 | - 预测问题 250 | 251 | 252 | 练习部分 253 | 254 | - 利用高维特比算法计算给定输入序列对应的最优输出序列 255 | 256 | 257 | ### Task05:SVM(2天) 258 | 理论部分 259 | - 概念:最大超平面 260 | - 数学知识:拉格朗日乘子 261 | - SVM 硬间隔优化公式 262 | - SVM 软间隔原理 263 | - 核函数 264 | 265 | 选修 : SMO 求解SVM 266 | 267 | 练习部分 268 | 269 | - 算法实现 270 | 271 | 272 | 273 | --- 274 | # 贡献人员 275 | 276 | 277 | 姓名 | 博客|备注 278 | ---|---|--- 279 | 肖然||中国科学院硕士 280 | 谢文昕||上海交通大学博士 281 | 高立业||太原理工大学硕士 282 | 赵楠||福州大学硕士 283 | 杨开漠 | [Github](https://github.com/km1994)|五邑大学计算机硕士 284 | 张雨||复旦大学博士 285 | 马燕鹏|[CSDN](https://lsgogroup.blog.csdn.net/)
微信公众号:LSGO软件技术团队|华北电力大学 286 | 张峰|[Github](https://github.com/Hirotransfer)|安徽工业大学硕士 287 | -------------------------------------------------------------------------------- /Mathematics/readme.md: -------------------------------------------------------------------------------- 1 | # 机器学习数学基础 2 | 3 | 致读者:各位参加机器学习数学基础组队学习的小伙伴们大家好,很高兴大家能相信Datawhale开源组织,我们因为Datawhale能与大家相聚。本次机器学习数学基础组队学习的内容涉及:《高等数学》/《数学分析》、《线性代数》/《高等代数》/《矩阵论》、《概率论与数理统计》,后期我将逐渐补充相应的进阶内容,供对内容深度有要求的小伙伴们阅读与使用,包括:《向量与矩阵的微积分》、《概率论进阶:随机过程》、《贝叶斯统计与抽样原理》、《运筹学与最优化方法》等等。参加完本次机器学习数学基础组队学习,小伙伴们将能够:了解机器学习算法中所需要的数学原理,考研数学所要掌握的知识点等等。希望大家能够喜欢机器学习数学基础组队学习! 4 | 5 | ## 1. 课程目标 6 | 7 | - 定位人群:机器学习算法研究生、大四准备考研的本科生、参加工作转行算法工程师的在职人员(需曾经学习过大学数学) 8 | 9 | - 课程效果:了解机器学习算法中所需要的数学原理,帮助大家在看优秀论文的时候能够迅速看懂其中原理,在接触新的算法时能够无障碍阅读与推导算法,参加数学建模大赛等等。 10 | 11 | - 课程内容: 12 | 13 | - 初级阶段: 14 | 15 | - 《高等数学》/《数学分析》 16 | - 《线性代数》/《高等代数》/《矩阵论》 17 | - 《概率论与数理统计》 18 | 19 | - 进阶内容: 20 | 21 | - 《向量与矩阵的微积分》 22 | - 《概率论进阶:随机过程》 23 | - 《统计学习导论》/《机器学习基本原理》 24 | - 《贝叶斯统计与抽样原理》 25 | - 《运筹学与最优化方法》 26 | 27 | - 课程进度:目前还在初级阶段,进阶内容还在逐步开发,敬请期待! 28 | 29 | - 参与方式: 30 | 31 | - 方式1:参加Datawhale定期组织的组队学习,报名、成功参与全部内容。 32 | - 方式2:自学。 33 | - 自学教材推荐:高等数学《2022张宇基础30讲》、线性代数《2022李永乐线性代数基础讲义》、概率论与数理统计《2022考研数学张宇概率论与数理统计9讲》**(我们强烈建议您购买正版书籍,支持正版!)** 34 | - 自学教材推荐:笔者自写讲义,格式为ipynb,需要掌握python基础。 35 | - 自学视频推荐: 36 | - 高等数学:https://www.bilibili.com/video/BV1H54y1J7Ka?share_source=copy_web 37 | - 线性代数:https://www.bilibili.com/video/BV15L4y167JE?share_source=copy_web 38 | - 机器学习数学基础:https://www.bilibili.com/video/BV1oQ4y1X7ep?share_source=copy_web 39 | 40 | 41 | 42 | ## 2. 课程内容 43 | 44 | 8月份: 45 | 46 | | 8月16日正式开始 | | 47 | | ------------------------------------------- | ---------------------- | 48 | | Task01:函数极限与连续性(3天) | 截止时间 08月19日03:00 | 49 | | Task02:数列极限(3天) | 截止时间 08月22日03:00 | 50 | | Task03:一元函数微分学的概念和计算(4天) | 截止时间 08月26日03:00 | 51 | | Task04:一元函数微分学的几何应用(3天) | 截止时间 08月29日03:00 | 52 | | Task05:中值定理(4天) | 截止时间 09月02日03:00 | 53 | | Task06:一元函数的积分学的概念和计算(7天) | 截止时间 09月09日03:00 | 54 | 55 | 9月份: 56 | 57 | | 09月13日正式开始: | | 58 | | :----------------------------------------------- | ---------------------- | 59 | | Task07:多元函数微分学(3天) | 截止时间 09月16日03:00 | 60 | | Task08:二重积分(4天) | 截止时间 09月20日03:00| 61 | | Task09:常微分方程(3天) | 截止时间 09月23日03:00 | 62 | | Task10:无穷级数(数一与数三)(3天) | 截止时间 09月26日03:00 | 63 | | Task11:数学一与数学二专题(2天) | 截止时间 09月28日03:00| 64 | | Task12:数学三专题(2天) | 截止时间 09月30日03:00| 65 | | Task13:多元函数积分学、三重积分与曲线曲面积分(3天) | 截止时间 10月03日03:00 | 66 | 67 | 68 | 10月份: 69 | 70 | | 10月11日正式开始: | | 71 | | :----------------------------------------------- | ---------------------- | 72 | | Task14:行列式(2天) | 截止时间 10月13日03:00| 73 | | Task15:矩阵(3天) | 截止时间 10月16日03:00 | 74 | | Task16:向量组与线性方程组(3天) | 截止时间 10月19日03:00 | 75 | | Task17:特征值、特征向量与二次型(4天) | 截止时间 10月23日03:00 | 76 | | Task18:随机事件与概率(2天) | 截止时间 10月25日03:00 | 77 | | Task19:一维随机变量及其分布(4天) | 截止时间1 0月29日03:00 | 78 | | Task20:多维随机变量及其分布(3天) | 截止时间 11月01日03:00 | 79 | | Task21:随机变量的数字特征与大数定律中心极限定理(3天) | 截止时间 11月04日03:00 | 80 | | Task22:数理统计(4天) | 截止时间 11月08日03:00 | 81 | | Task23:不等式与等式计算及证明专题(2天) | 截止时间 11月10日03:00 | 82 | 83 | 84 | 11月份: 85 | 86 | | 11月份组队学习如下: | | 87 | | :----------------------------------------------- | ---------------------- | 88 | | Task24:试卷一及总结 | 截止时间11月01日03:00 | 89 | | Task25:试卷二及总结 | 截止时间11月05日03:00 | 90 | | Task26:试卷三及总结 | 截止时间11月09日03:00 | 91 | | Task27:试卷四及其总结 | 截止时间11月13日03:00 | 92 | | Task28:试卷五及总结 | 截止时间11月17日03:00 | 93 | | Task29:试卷六及总结 | 截止时间11月21日03:00 | 94 | | Task30:试卷七及总结 | 截止时间11月25日03:00 | 95 | | Task31:试卷八及总结 | 截止时间11月29日03:00 | 96 | | Task32:试卷九及总结 | 截止时间12月03日03:00 | 97 | | Task33:总结基础+以往错题回顾+试卷十及总结 | 截止时间12月10日03:00 | 98 | | Task34:总结基础+以往错题回顾+试卷十一及总结 | 截止时间12月17日03:00 | 99 | | Task35:总结基础+以往错题回顾+试卷十二及总结 | 截止时间12月22日03:00 | 100 | 101 | 102 | 103 | ## 3.联系我们 104 | 105 | 如果您对我们的课程有任何的内容,请随时联系我:1028851587@qq.com,联系时请备注您的身份与职业(学校),我会听取您宝贵的意见! -------------------------------------------------------------------------------- /MatrixAnalysis/README.md: -------------------------------------------------------------------------------- 1 | # matrix-analysis 2 | 矩阵分析与 AI 3 | 4 | 5 | 6 | 在线阅读: 7 | 8 | #### 项目初衷 9 | 10 | 本课程讲授和讨论矩阵分析的主要理论。 11 | 12 | 通过本课程的学习,希望能够掌握矩阵分析理论和主要思想,提高数理基础和思维水平。 13 | 14 | 学习的先修要求:了解一些基本的高数和线性代数知识。 15 | 16 | #### 内容设置 17 | 18 | 1. 矩阵概述 19 | 1. 向量、矩阵 20 | 2. 矩阵的性能指标 21 | 3. 矩阵的逆 22 | 4. 广义逆和Moore-Penrose逆 23 | 5. Kronecker积 24 | 6. Hadamard积 25 | 2. 特殊矩阵 26 | 1. 基本矩阵 27 | 2. 置换矩阵 28 | 3. 正交矩阵 29 | 4. 相似矩阵 30 | 5. Vandermonde矩阵 31 | 6. Fourier矩阵 32 | 7. Hadamard矩阵 33 | 3. 奇异值分析 34 | 1. 数值稳定性和条件数 35 | 2. 奇异值分解 36 | 3. 奇异值分解的应用 37 | 4. 广义奇异值分解 38 | 4. 最小二乘 39 | 1. 最小二乘法 40 | 2. 总体最小二乘 41 | 3. 约束总体最小二乘 42 | 4. 结构总体最小二乘 43 | 5. 子空间分析 44 | 1. 子空间的一般理论 45 | 2. 列空间、行空间、零空间 46 | 3. 子空间方法 47 | 48 | 49 | 50 | ------ 51 | 52 | 53 | 54 | #### 人员安排 55 | 56 | | 成员 | 个人简介 | 个人主页 | 57 | | ------ | --------------------------------------------- | ------------------------------------------------------------ | 58 | | 刘洋 | DataWhale成员,中国科学院数学与系统科学研究院 | [知乎主页](https://www.zhihu.com/people/ming-ren-19-34)
公众号:鸣也的小屋
[个人主页](https://liu-yang-maker.github.io/Liu.Y/) | 59 | | 叶前坤 | 中国传媒大学 | https://github.com/PureBuckwheat | 60 | 61 | #### 其他 62 | 63 | ## 关注我们 64 | 65 |
66 |

扫描下方二维码关注公众号:Datawhale

67 | 68 |
69 | 70 | 71 | ## LICENSE 72 | 73 | 知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /MemberOperations/XX1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/MemberOperations/XX1.png -------------------------------------------------------------------------------- /MemberOperations/XX2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/MemberOperations/XX2.png -------------------------------------------------------------------------------- /MemberOperations/image (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/MemberOperations/image (1).png -------------------------------------------------------------------------------- /MemberOperations/image (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/MemberOperations/image (2).png -------------------------------------------------------------------------------- /MemberOperations/image (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/MemberOperations/image (3).png -------------------------------------------------------------------------------- /MemberOperations/image (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/MemberOperations/image (4).png -------------------------------------------------------------------------------- /MemberOperations/image (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/MemberOperations/image (5).png -------------------------------------------------------------------------------- /MemberOperations/image (6).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/MemberOperations/image (6).png -------------------------------------------------------------------------------- /MemberOperations/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/MemberOperations/image.png -------------------------------------------------------------------------------- /MemberOperations/readme.md: -------------------------------------------------------------------------------- 1 | # 开源项目:用Python学会员数据化运营 2 | 3 | - 航路开辟者:红星、曹志宾、孙健坤、刘雯静 4 | - 领航员:李晴晴 5 | - 航海士:红星、曹志宾、孙健坤、刘雯静 6 | 7 | ## 基本信息 8 | 9 | - 论坛版块:http://datawhale.club/c/team-learning/37-category/37 10 | - 开源内容:https://github.com/datawhalechina/team-learning-data-mining/tree/master/MemberOperations 11 | - 内容属性:打磨课程 12 | - 内容说明:了解企业数据化运营中,运用数据工具对会员进行运营的思路和方法,了解RFM模型的运用,掌握Python处理数据的技巧,掌握Excel表的可视化图表及透视工具。 13 | - 定位人群:对业务类数据分析感兴趣者、希望深入了解业务知识的应届生或在校生等。 14 | - 特别提示:每一期提交作业前均有一次直播分享,敬请留意。 15 | 16 | ## 任务安排 17 | 18 | - 学习周期:14天 19 | - 任务路线:第一周学习和体会业务场景中数据化运营的重要性和方法论,第二周对数据化运营中用户分析模型RFM模型进行实操和练习。 20 | 21 | ![](https://img-blog.csdnimg.cn/20210811122920509.png) 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /MemberOperations/sales.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/MemberOperations/sales.xlsx -------------------------------------------------------------------------------- /NeuralNetwork/readme.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | # 贡献人员 5 | 6 | 7 | 姓名 | 博客|备注 8 | ---|---|--- 9 | 贾博文|[CSDN](https://blog.csdn.net/love_fish_eat)|浙江大学硕士 10 | 张峰|[Github](https://github.com/Hirotransfer)|安徽工业大学硕士 11 | 秦州|[Github](https://archwalker.github.io/)|阿里巴巴 -------------------------------------------------------------------------------- /NeuralNetwork/神经网络知识专题总结.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | ![结构总览](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6SHf0DkybHYTy31YvlJaB2uLInEsjcVDR0k1m8chc6W7OZNMm76YGTBw/640?wx_fmt=png) 4 | 5 | 6 | 7 | ## **一、神经网络简介** 8 | 9 | 对于非线性分类问题(如图1所示),“非线性”意味着你无法使用形式为: 10 | 11 | ![](https://tva1.sinaimg.cn/large/0081Kckwly1gkc7ho10poj30w203c3yk.jpg) 12 | 13 | 的模型准确预测标签。也就是说,“决策面”不是直线。之前,我们了解了对非线性问题进行建模的一种可行方法 - 特征组合。![img](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6SCibjMlFcYKceEm2mncewib1PKbYuvV7BicpwajD3RXoEzNMXiaOr3jibJSQ/640?wx_fmt=png) 14 | 15 | 现在,请考虑以下数据集: 16 | 17 | ![图 2. 更难的非线性分类问题](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6So0ziaELoiaBRRHrgDXj6X4zYqjGOIUPM32vzC7gckOovPAtXIKmagLXg/640?wx_fmt=png) 18 | 19 | 图 2 所示的数据集问题无法用线性模型解决。为了了解神经网络可以如何帮助解决非线性问题,我们首先用图表呈现一个线性模型: 20 | 21 | ![图 3. 用图表呈现的线性模型](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6SGUZ9SqTjX6d0U5vGUMa3abpKJ6eAkvT2TibHLbO0lbsU2IAlRxcPJvw/640?wx_fmt=png) 22 | 23 | 每个蓝色圆圈均表示一个输入特征,绿色圆圈表示各个输入的加权和。要提高此模型处理非线性问题的能力,我们可以如何更改它? 24 | 25 | ### 1.1 隐藏层 26 | 27 | 在下图所示的模型中,我们添加了一个表示中间值的“隐藏层”。隐藏层中的每个黄色节点均是蓝色输入节点值的加权和。输出是黄色节点的加权和。 28 | 29 | ![img](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6SSTicNnQdGic680PfmD7IvVftY45OxYHyakQzV0SyYG3b6WngwjcwTbfg/640?wx_fmt=png) 30 | 31 | 图 4. 两层模型的图表 32 | 33 | 此模型是线性的吗?是的,其输出仍是其输入的线性组合。 34 | 35 | 在下图所示的模型中,我们又添加了一个表示加权和的“隐藏层”。 36 | 37 | ![img](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6SiavfTcUcRnukibI1t9TUrxCId6OVIUbnl0DxoKC7CvZicC6s2FPwvyFrw/640?wx_fmt=png) 38 | 39 | 图 5. 三层模型的图表 40 | 41 | 此模型仍是线性的吗?是的,没错。当你将输出表示为输入的函数并进行简化时,你只是获得输入的另一个加权和而已。该加权和无法对图 2 中的非线性问题进行有效建模。 42 | 43 | ### 1.2 激活函数 44 | 45 | 要对非线性问题进行建模,我们可以直接引入非线性函数。我们可以用非线性函数将每个隐藏层节点像管道一样连接起来。 46 | 47 | 在下图所示的模型中,在隐藏层 1 中的各个节点的值传递到下一层进行加权求和之前,我们采用一个非线性函数对其进行了转换。这种非线性函数称为激活函数。 48 | 49 | ![img](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6SSLggSyBqDNZ7tEKsYhWnabLVeLLsIq4qHd2Vk0EUUx687eiaCnJytZw/640?wx_fmt=png) 50 | 51 | 图 6. 包含激活函数的三层模型的图表 52 | 53 | 现在,我们已经添加了激活函数,如果添加层,将会产生更多影响。通过在非线性上堆叠非线性,我们能够对输入和预测输出之间极其复杂的关系进行建模。简而言之,每一层均可通过原始输入有效学习更复杂、更高级别的函数。如果你想更直观地了解这一过程的工作原理,请参阅 Chris Olah 的精彩博文。 54 | 55 | **常见激活函数** 56 | 57 | 以下 S 型激活函数将加权和转换为介于 0 和 1 之间的值。 58 | 59 | 60 | 61 | 曲线图如下: 62 | 63 | ![img](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6SIT5WfTXfktu4fSrwHp3Bz05daAOfaHvyAyQS06iaumAUBu6zKTu8wsg/640?wx_fmt=png) 64 | 65 | 图 7. S 型激活函数 66 | 67 | 相较于 S 型函数等平滑函数,以下修正线性单元激活函数(简称为 ReLU)的效果通常要好一点,同时还非常易于计算。 68 | 69 | 70 | 71 | ReLU 的优势在于它基于实证发现(可能由 ReLU 驱动),拥有更实用的响应范围。S 型函数的响应性在两端相对较快地减少。 72 | 73 | ![img](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6SsIBiabB4iayNItGCO60KjhibFEwibujA6hQfmkJz4nTU2o3lOibLaGKjE2g/640?wx_fmt=png) 74 | 75 | 图 8. ReLU 激活函数 76 | 77 | 实际上,所有数学函数均可作为激活函数。假设 σσ 表示我们的激活函数(ReLU、S 型函数等等)。因此,网络中节点的值由以下公式指定: 78 | 79 | 80 | 81 | TensorFlow 为各种激活函数提供开箱即用型支持。但是,我们仍建议从 ReLU 着手。 82 | 83 | ### 1.3 小结 84 | 85 | 现在,我们的模型拥有了人们通常所说的“神经网络”的所有标准组件: 86 | 87 | - 一组节点,类似于神经元,位于层中。 88 | - 一组权重,表示每个神经网络层与其下方的层之间的关系。下方的层可能是另一个神经网络层,也可能是其他类型的层。 89 | - 一组偏差,每个节点一个偏差。 90 | - 一个激活函数,对层中每个节点的输出进行转换。不同的层可能拥有不同的激活函数。 91 | 92 | 警告:神经网络不一定始终比特征组合好,但它确实可以提供适用于很多情形的灵活替代方案。 93 | 94 | ## **二、训练神经网络** 95 | 96 | 本部分介绍了反向传播算法的失败案例,以及正则化神经网络的常见方法。 97 | 98 | ### 2.1 失败案例 99 | 100 | 很多常见情况都会导致反向传播算法出错。 101 | 102 | **梯度消失** 103 | 104 | 较低层(更接近输入)的梯度可能会变得非常小。在深度网络中,计算这些梯度时,可能涉及许多小项的乘积。 105 | 106 | 当较低层的梯度逐渐消失到 0 时,这些层的训练速度会非常缓慢,甚至不再训练。 107 | 108 | ReLU 激活函数有助于防止梯度消失。 109 | 110 | **梯度爆炸** 111 | 112 | 如果网络中的权重过大,则较低层的梯度会涉及许多大项的乘积。在这种情况下,梯度就会爆炸:梯度过大导致难以收敛。批标准化可以降低学习速率,因而有助于防止梯度爆炸。 113 | 114 | **ReLU 单元消失** 115 | 116 | 一旦 ReLU 单元的加权和低于 0,ReLU 单元就可能会停滞。它会输出对网络输出没有任何贡献的 0 激活,而梯度在反向传播算法期间将无法再从中流过。由于梯度的来源被切断,ReLU 的输入可能无法作出足够的改变来使加权和恢复到 0 以上。 117 | 118 | 降低学习速率有助于防止 ReLU 单元消失。 119 | 120 | ### 2.2 丢弃正则化 121 | 122 | 这是称为丢弃的另一种形式的正则化,可用于神经网络。其工作原理是,在梯度下降法的每一步中随机丢弃一些网络单元。丢弃得越多,正则化效果就越强: 123 | 124 | - 0.0 = 无丢弃正则化。 125 | - 1.0 = 丢弃所有内容。模型学不到任何规律。 126 | 127 | 0.0 和 1.0 之间的值更有用。 128 | 129 | ## **三、多类别神经网络** 130 | 131 | ### 3.1 一对多(OnevsAll) 132 | 133 | 一对多提供了一种利用二元分类的方法。鉴于一个分类问题会有 N 个可行的解决方案,一对多解决方案包括 N 个单独的二元分类器,每个可能的结果对应一个二元分类器。在训练期间,模型会训练一系列二元分类器,使每个分类器都能回答单独的分类问题。以一张狗狗的照片为例,可能需要训练五个不同的识别器,其中四个将图片看作负样本(不是狗狗),一个将图片看作正样本(是狗狗)。即: 134 | 135 | 1. 这是一张苹果的图片吗?不是。 136 | 2. 这是一张熊的图片吗?不是。 137 | 3. 这是一张糖果的图片吗?不是。 138 | 4. 这是一张狗狗的图片吗?是。 139 | 5. 这是一张鸡蛋的图片吗?不是。 140 | 141 | 当类别总数较少时,这种方法比较合理,但随着类别数量的增加,其效率会变得越来越低下。 142 | 143 | 我们可以借助深度神经网络(在该网络中,每个输出节点表示一个不同的类别)创建明显更加高效的一对多模型。图9展示了这种方法: 144 | 145 | ![img](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6SVkppeFX1T5rwEl1YupNBmuCV5k054sXLg1VRuulDydxKsrb6X1GuFw/640?wx_fmt=png) 146 | 147 | 图 9. 一对多神经网络 148 | 149 | ## **四、Softmax** 150 | 151 | 我们已经知道,逻辑回归可生成介于 0 和 1.0 之间的小数。例如,某电子邮件分类器的逻辑回归输出值为 0.8,表明电子邮件是垃圾邮件的概率为 80%,不是垃圾邮件的概率为 20%。很明显,一封电子邮件是垃圾邮件或非垃圾邮件的概率之和为 1.0。 152 | 153 | Softmax 将这一想法延伸到多类别领域。也就是说,在多类别问题中,Softmax 会为每个类别分配一个用小数表示的概率。这些用小数表示的概率相加之和必须是 1.0。与其他方式相比,这种附加限制有助于让训练过程更快速地收敛。 154 | 155 | 例如,回到我们在图 9 中看到的图片分析示例,Softmax 可能会得出图片属于某一特定类别的以下概率: 156 | 157 | ![img](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6SUWwpn117RsQZ5vgezicU58UUCRkgfhyf5LKJ9eUBB4YE3bcib5O6R1SA/640?wx_fmt=png) 158 | 159 | Softmax 层是紧挨着输出层之前的神经网络层。Softmax 层必须和输出层拥有一样的节点数。 160 | 161 | ![img](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6SJo6MN0cCmEUVCZWHoWHhy7IKHBSGTJOpAhsD7UibpvvA5rELJMZdYLA/640?wx_fmt=png) 162 | 163 | 图 10. 神经网络中的Softmax层次 164 | 165 | Softmax 方程式如下所示: 166 | 167 | ![img](https://mmbiz.qpic.cn/mmbiz_png/vI9nYe94fsFRXXrtVw5SUtVbWmRJpib6SObibArodD84nibqlDhOPVYsiaiaWYbtQhdjqN39qAvExhIpnrKSvlKc4LA/640?wx_fmt=png) 168 | 169 | 请注意,此公式本质上是将逻辑回归公式延伸到了多类别。 170 | 171 | ### 4.1 Softmax 选项 172 | 173 | 请查看以下 Softmax 变体: 174 | 175 | - 完整 Softmax 是我们一直以来讨论的 Softmax;也就是说,Softmax 针对每个可能的类别计算概率。 176 | - 候选采样指 Softmax 针对所有正类别标签计算概率,但仅针对负类别标签的随机样本计算概率。例如,如果我们想要确定某个输入图片是小猎犬还是寻血猎犬图片,则不必针对每个非狗狗样本提供概率。 177 | 178 | 类别数量较少时,完整 Softmax 代价很小,但随着类别数量的增加,它的代价会变得极其高昂。候选采样可以提高处理具有大量类别的问题的效率。 179 | 180 | ## **五、一个标签与多个标签** 181 | 182 | Softmax 假设每个样本只是一个类别的成员。但是,一些样本可以同时是多个类别的成员。对于此类示例: 183 | 184 | - 你不能使用 Softmax。 185 | - 你必须依赖多个逻辑回归。 186 | 187 | 例如,假设你的样本是只包含一项内容(一块水果)的图片。Softmax 可以确定该内容是梨、橙子、苹果等的概率。如果你的样本是包含各种各样内容(几份不同种类的水果)的图片,你必须改用多个逻辑回归。 188 | -------------------------------------------------------------------------------- /ProbabilityStatistics/figures_ANOVA/2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/figures_ANOVA/2-1.png -------------------------------------------------------------------------------- /ProbabilityStatistics/figures_ANOVA/2-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/figures_ANOVA/2-2.png -------------------------------------------------------------------------------- /ProbabilityStatistics/figures_ANOVA/2-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/figures_ANOVA/2-3.png -------------------------------------------------------------------------------- /ProbabilityStatistics/figures_ANOVA/3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/figures_ANOVA/3-1.png -------------------------------------------------------------------------------- /ProbabilityStatistics/figures_ANOVA/3-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/figures_ANOVA/3-2.png -------------------------------------------------------------------------------- /ProbabilityStatistics/figures_ANOVA/3-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/figures_ANOVA/3-3.png -------------------------------------------------------------------------------- /ProbabilityStatistics/readme.md: -------------------------------------------------------------------------------- 1 | # 概率统计 2 | 3 | 4 | ## 基本信息 5 | 6 | - 学习周期:9天 2-3h/天 7 | - 学习形式:理论学习 + 练习 8 | - 人群定位:了解 python 编程语言 和 概率统计的基本概念,希望通过程序模拟的方式来熟悉概率统计知识的学习者。 9 | - 先修内容:[Python编程语言](https://github.com/datawhalechina/team-learning-program/tree/master/Python-Language) 10 | - 难度系数:低 11 | 12 | 13 | ## 任务安排 14 | 15 | ### Task1:随机事件与随机变量(1天) 16 | 17 | **理论部分** 18 | - 基本概念:随机事件,样本空间等; 19 | - 概率基础:古典概型,条件概率,贝叶斯公式; 20 | - 随机变量及其分布特征 21 | 22 | **练习部分** 23 | 24 | - 做理论知识点的笔记; 25 | - python实现二项分布,协方差和相关系数以及贝叶斯公式; 26 | 27 | ### Task2:数理统计与描述性分析(2天) 28 | 29 | **理论部分** 30 | - 统计量与抽样;常用统计量; 31 | - 数据集中与离散趋势的度量; 32 | - 分布特征,偏度与峰度; 33 | 34 | **练习部分** 35 | - 做理论知识点的笔记; 36 | - python实现数据各维度的描述性分析; 37 | 38 | ### Task3:常见分布与假设检验(3天) 39 | 40 | **理论部分** 41 | - 离散型分布,连续型分布,python实现及可视化; 42 | - 假设检验步骤及两类错误解读; 43 | - 假设检验的python实战; 44 | 45 | **练习部分** 46 | - 做理论知识点的笔记; 47 | - python实现常见分布,python实现假设检验; 48 | 49 | ### Task4:方差分析(3天) 50 | 51 | **理论部分** 52 | - 单因素组间方差分析与双因素方差分析; 53 | - 方差的相关检验,主效应和交互效应; 54 | 55 | 56 | **练习部分** 57 | - 做理论知识点的笔记; 58 | - python实现方差分析; 59 | 60 | 61 | 62 | --- 63 | # 贡献人员 64 | 65 | 66 | 姓名 | 描述|博客 67 | ---|---|--- 68 | 张晓东|数据分析师| 69 | 张雨|复旦大学在读博士|Github:https://github.com/Drizzle-Zhang 70 | 杨剑砺|制造业数据从业者| -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/3西格玛原则.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/3西格玛原则.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/binomial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/binomial.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/continuousoverall.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/continuousoverall.PNG -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/debug.log: -------------------------------------------------------------------------------- 1 | [0606/173706:INFO:exception_record.cc(518)] [QB]Process ID: 10364 Type: 2 2 | [0606/173708:INFO:http_cache_transaction.cc(72)] IgnoreZeroCacheError: 0 3 | -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/discreteoverall.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/discreteoverall.PNG -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/expo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/expo.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/expo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/expo2.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/normal.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/poisson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/poisson.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/poisson2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/poisson2.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/uniform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/uniform.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/uniform2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/uniform2.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/下载.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/下载.jpg -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/中位数公式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/中位数公式.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/举个例子.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/举个例子.jpg -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/举个栗子.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/举个栗子.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/偏态与峰度.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/偏态与峰度.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/分布函数与密度函数.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/分布函数与密度函数.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/分布函数与密度函数的关系.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/分布函数与密度函数的关系.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/变异系数公式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/变异系数公式.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/平均数公式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/平均数公式.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/方差例子.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/方差例子.gif -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/标准正态分布.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/标准正态分布.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/样本偏度系数公式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/样本偏度系数公式.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/样本峰度系数.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/样本峰度系数.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/样本方差公式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/样本方差公式.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/样本极差公式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/样本极差公式.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/样本标准差公式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/样本标准差公式.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/概率分布函数定义.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/概率分布函数定义.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/正态分布公式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/正态分布公式.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/正态分布图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/正态分布图.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/正态分布表示.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/正态分布表示.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/百分位数.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/百分位数.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/百分位数图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/百分位数图.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/百分位数图0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/百分位数图0.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/线性.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/线性.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/线性回归原理图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/线性回归原理图.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/自我介绍.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/自我介绍.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/解方程步骤.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/解方程步骤.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/逻辑.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/逻辑.png -------------------------------------------------------------------------------- /ProbabilityStatistics/tupian/非线性.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/ProbabilityStatistics/tupian/非线性.png -------------------------------------------------------------------------------- /PurchaseAndRedemptionForecast/README.md: -------------------------------------------------------------------------------- 1 | # The-Purchase-and-Redemption-Forecast-Challenge-baseline 2 | 3 | 天池“资金流入流出预测——挑战baseline”的解决方案,线上效果143.5 4 | 5 | ## 项目结构 6 | 7 | 1. **数据探索与分析** 对于赛题的理解与对数据的分析 8 | 2. **数据探索与分析** 对于赛题的理解与对数据的分析 9 | 3. **时间序列规则** 采用简单时间序列规则进行预测 10 | 4. **时间序列** 采用时间序列模型进行预测(本章节未上传,但不影响继续后面几个章节) 11 | 5. **特征工程** 面向机器学习模型进行时间序列特征工程 12 | 6. **建模预测** 采用机器学习模型进行建模预测 13 | 14 | ## Q&A 15 | 16 | > **Q:** 我在运行您的第6个文件时发现缺少数据,请问是否缺少文件,遇到这个问题可以怎么 处理? 17 | > **A:** 首先您需要先运行05.特征工程生成特征文件保存在./Feature目录下。其次06.建模预测中对Purchase以及Redeem**分别建模**,因此您需要将05.特征工程中的Purchase替换成Redeem再次运行一遍,以生成Redeem特征。 18 | 19 | > **Q:** 您好!在天池竞赛——资金流入流出预测中,在训练模型的时候发现某个文件不存在feature0522.csv,请问是否存在其他脚本,如果有可以发一下吗? 20 | > **A:** feature0522并没有实际生成,您可以读取05.特征工程中生成的purchase_feature_droped_0614.csv文件,在建模时删除特征名中不带有"is"的特征,与feature0522建模效果是等价的。 21 | 22 | 23 | ## 声明 24 | 本项目库专门存放阿里天池在线课程《资金流入流出预测-挑战Baseline》的相关代码文件,所有代码仅供各位同学学习参考使用,未经许可不得用于商业用途。如有任何对代码的问题请邮箱联系:cs_xcy@126.com 25 | 26 | 知乎ID:小雨姑娘 27 | 28 | 天池ID:**小雨姑娘** & BruceQD 29 | -------------------------------------------------------------------------------- /RentForecast/Task6 竞赛整理.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# 任务6 比赛整理(2天)\n", 8 | "\n", 9 | "以赛方最后给的答辩模板为主线整理比赛思路,模拟比赛答辩环节,进行比赛整理。\n", 10 | "\n", 11 | "## Part1\n", 12 | "\n", 13 | "**参赛队成员简介**\n", 14 | "\n", 15 | " (这边主要介绍成员情况,如果有竞赛获奖就最好啦)\n", 16 | "\n", 17 | "ps:这个由于是模拟比赛所以这个部分可以不写哦\n", 18 | "\n", 19 | "## Part2\n", 20 | "\n", 21 | "**参赛作品概述**\n", 22 | "\n", 23 | "## Part3\n", 24 | "\n", 25 | "**关键技术阐述(数据清洗、特征工程、模型、模型融合,并强调对比赛提分最有帮助的部分)**\n", 26 | "\n", 27 | "## Part4\n", 28 | "\n", 29 | "**探索与创新(写明做的与众不同的创新点)**\n", 30 | "\n", 31 | "## Part5\n", 32 | "\n", 33 | "**实施与优化过程(在过程中尝试过的方法都可以提及并总结)**\n", 34 | "\n", 35 | "## Part6\n", 36 | "\n", 37 | "**其他(有其他需要补充的可以写在这个部分)**\n", 38 | "\n", 39 | "\n", 40 | "\n", 41 | "**(注:因为比赛是和企业合作,并具有实际意义的比赛,所以强调你的代码模型的实际意义,商业价值都会在答辩环节有帮助哦)**\n", 42 | "\n", 43 | "\n", 44 | "\n", 45 | "\n", 46 | "\n", 47 | "**任务时间 2天**\n" 48 | ] 49 | }, 50 | { 51 | "cell_type": "markdown", 52 | "metadata": { 53 | "ExecuteTime": { 54 | "end_time": "2019-12-24T12:40:43.526848Z", 55 | "start_time": "2019-12-24T12:40:43.515876Z" 56 | } 57 | }, 58 | "source": [ 59 | "**参考连接:**\n", 60 | "[https://blog.csdn.net/qq_39756719/article/details/95634744](https://blog.csdn.net/qq_39756719/article/details/95634744)" 61 | ] 62 | } 63 | ], 64 | "metadata": { 65 | "kernelspec": { 66 | "display_name": "Python 3", 67 | "language": "python", 68 | "name": "python3" 69 | }, 70 | "language_info": { 71 | "codemirror_mode": { 72 | "name": "ipython", 73 | "version": 3 74 | }, 75 | "file_extension": ".py", 76 | "mimetype": "text/x-python", 77 | "name": "python", 78 | "nbconvert_exporter": "python", 79 | "pygments_lexer": "ipython3", 80 | "version": "3.5.3" 81 | }, 82 | "toc": { 83 | "base_numbering": 1, 84 | "nav_menu": {}, 85 | "number_sections": true, 86 | "sideBar": true, 87 | "skip_h1_title": false, 88 | "title_cell": "Table of Contents", 89 | "title_sidebar": "Contents", 90 | "toc_cell": false, 91 | "toc_position": {}, 92 | "toc_section_display": true, 93 | "toc_window_display": true 94 | } 95 | }, 96 | "nbformat": 4, 97 | "nbformat_minor": 2 98 | } 99 | -------------------------------------------------------------------------------- /RentForecast/readme.md: -------------------------------------------------------------------------------- 1 | # 简介 2 | 3 | 我们尽快把该课程组队学习的优秀作业整理出来,供大家学习参考。 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /RentForecast/数据集/数据集字段说明.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/RentForecast/数据集/数据集字段说明.csv -------------------------------------------------------------------------------- /SecondHandCarPriceForecast/data/used_car_testA_20200313.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/SecondHandCarPriceForecast/data/used_car_testA_20200313.zip -------------------------------------------------------------------------------- /SecondHandCarPriceForecast/data/used_car_train_20200313.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/SecondHandCarPriceForecast/data/used_car_train_20200313.zip -------------------------------------------------------------------------------- /SecondHandCarPriceForecast/data/数据说明.txt: -------------------------------------------------------------------------------- 1 | 1. 赛题数据 2 | 赛题以预测二手车的交易价格为任务,数据集报名后可见并可下载,该数据来自某交易平台的二手车交易记录,总数据量超过40w,包含31列变量信息,其中15列为匿名变量。为了保证比赛的公平性,将会从中抽取15万条作为训练集,5万条作为测试集A,5万条作为测试集B,同时会对name、model、brand和regionCode等信息进行脱敏。 3 | 4 | 字段表 5 | Field Description 6 | SaleID 交易ID,唯一编码 7 | name 汽车交易名称,已脱敏 8 | regDate 汽车注册日期,例如20160101,2016年01月01日 9 | model 车型编码,已脱敏 10 | brand 汽车品牌,已脱敏 11 | bodyType 车身类型:豪华轿车:0,微型车:1,厢型车:2,大巴车:3,敞篷车:4,双门汽车:5,商务车:6,搅拌车:7 12 | fuelType 燃油类型:汽油:0,柴油:1,液化石油气:2,天然气:3,混合动力:4,其他:5,电动:6 13 | gearbox 变速箱:手动:0,自动:1 14 | power 发动机功率:范围 [ 0, 600 ] 15 | kilometer 汽车已行驶公里,单位万km 16 | notRepairedDamage 汽车有尚未修复的损坏:是:0,否:1 17 | regionCode 地区编码,已脱敏 18 | seller 销售方:个体:0,非个体:1 19 | offerType 报价类型:提供:0,请求:1 20 | creatDate 汽车上线时间,即开始售卖时间 21 | price 二手车交易价格(预测目标) 22 | v系列特征 匿名特征,包含v0-14在内15个匿名特征 -------------------------------------------------------------------------------- /SecondHandCarPriceForecast/readme.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | ## 简介 4 | 5 | [数据挖掘实践(二手车价格预测)](https://github.com/datawhalechina/team-learning-data-mining/tree/master/SecondHandCarPriceForecast)的内容来自 Datawhale与天池联合发起的 [零基础入门数据挖掘 - 二手车交易价格预测](https://tianchi.aliyun.com/competition/entrance/231784/introduction) 学习赛的第一场。 6 | 7 | ![](https://img-blog.csdnimg.cn/20200801001301791.png) 8 | 9 | - [零基础入门数据挖掘 - 二手车交易价格预测](https://tianchi.aliyun.com/competition/entrance/231784/introduction) 10 | - [Baseline](https://tianchi.aliyun.com/notebook-ai/detail?postId=95422) 11 | - [Task1 赛题理解](https://tianchi.aliyun.com/notebook-ai/detail?postId=95456) 12 | - [Task2 数据分析](https://tianchi.aliyun.com/notebook-ai/detail?postId=95457) 13 | - [Task3 特征工程](https://tianchi.aliyun.com/notebook-ai/detail?postId=95501) 14 | - [Task4 建模调参](https://tianchi.aliyun.com/notebook-ai/detail?postId=95460) 15 | - [Task5 模型融合](https://tianchi.aliyun.com/notebook-ai/detail?postId=95535) 16 | - [录播01:Baseline + 赛题理解](https://tianchi.aliyun.com/course/video?spm=5176.12282064.0.0.25382042MPEAvp&liveId=41143) 17 | - [录播02:特征工程](https://tianchi.aliyun.com/course/video?spm=5176.12282064.0.0.25382042MPEAvp&liveId=41145) 18 | - [录播03:建模和调参](https://tianchi.aliyun.com/course/live?liveId=41146) 19 | - [录播04:模型融合](https://tianchi.aliyun.com/course/video?liveId=41149) 20 | 21 | 22 | --- 23 | ## 基本信息 24 | - 贡献人员:王贺、王茂霖、薛传雨、车弘书、陈泽、谢文昕、鲁力、李文乐、姚鑫、苏鹏、六一、李玲、罗如意、徐何军、詹好 25 | - 学习周期:14天,每天平均花费时间3小时-5小时不等,根据个人学习接受能力强弱有所浮动。 26 | - 学习形式:理论学习 + 练习 27 | - 人群定位:有一定数据分析与python编程的基础。 28 | - 先修内容:[Python编程语言](https://github.com/datawhalechina/team-learning-program/tree/master/Python-Language) 29 | - 难度系数:中 30 | 31 | 32 | --- 33 | ## 任务安排 34 | 35 | ### Task01:赛题理解 36 | 37 | 学习目标 38 | 39 | - 理解赛题数据和目标,清楚评分体系。 40 | - 完成相应报名,下载数据和结果提交打卡(可提交示例结果),熟悉比赛流程 41 | 42 | 了解赛题 43 | 44 | - 赛题概况 45 | - 数据概况 46 | - 预测指标 47 | - 分析赛题 48 | 49 | 代码示例 50 | 51 | - 数据读取pandas 52 | - 分类指标评价计算示例 53 | - 回归指标评价计算示例 54 | 55 | 56 | ### Task02:数据分析 57 | 58 | 59 | 60 | EDA目标 61 | 62 | - EDA的价值主要在于熟悉数据集,了解数据集,对数据集进行验证来确定所获得数据集可以用于接下来的机器学习或者深度学习使用。 63 | - 当了解了数据集之后我们下一步就是要去了解变量间的相互关系以及变量与预测值之间的存在关系。 64 | - 引导数据科学从业者进行数据处理以及特征工程的步骤,使数据集的结构和特征集让接下来的预测问题更加可靠。 65 | - 完成对于数据的探索性分析,并对于数据进行一些图表或者文字总结并打卡。 66 | 67 | **代码示例** 68 | 69 | - 载入各种数据科学以及可视化库 70 | - 载入数据 71 | - 总览数据概况 72 | - 判断数据缺失和异常 73 | - 了解预测值的分布 74 | - 特征分为类别特征和数字特征,并对类别特征查看unique分布 75 | - 数字特征分析 76 | - 类别特征分析 77 | - 用pandas_profiling生成数据报告 78 | 79 | 80 | 81 | ### Task03:特征工程 82 | 83 | 84 | 85 | 特征工程目标 86 | 87 | 88 | - 对于特征进行进一步分析,并对于数据进行处理。 89 | - 完成对于特征工程的分析,并对于数据进行一些图表或者文字总结并打卡。 90 | 91 | 92 | 代码示例 93 | - 导入数据 94 | - 删除异常值 95 | - 特征构造 96 | - 特征筛选 97 | 98 | 99 | 100 | ### Task04:建模调参 101 | 102 | 103 | 104 | 学习目标 105 | 106 | - 了解常用的机器学习模型,并掌握机器学习模型的建模与调参流程 107 | - 完成相应学习打卡任务 108 | 109 | 110 | 相关原理介绍与推荐 111 | - 线性回归模型 112 | - 决策树模型 113 | - GBDT模型 114 | - XGBoost模型 115 | - LightGBM模型 116 | - 推荐教材 117 | 118 | 代码示例 119 | - 读取数据 120 | - 线性回归 & 五折交叉验证 & 模拟真实业务情况 121 | - 多种模型对比 122 | - 模型调参 123 | 124 | 125 | 126 | ### Task05:模型融合 127 | 128 | 129 | 130 | 模型融合目标 131 | 132 | 133 | - 对于多种调参完成的模型进行模型融合。 134 | - 完成对于多种模型的融合,提交融合结果并打卡。 135 | 136 | 137 | 代码示例 138 | - 回归\分类概率-融合 139 | - 分类模型融合 140 | - 一些其它方法 141 | - 本赛题示例 142 | 143 | 144 | 145 | 146 | 147 | 148 | -------------------------------------------------------------------------------- /TimeSeries/ARMA 时间序列模型与预测.md: -------------------------------------------------------------------------------- 1 | # ARMA 时间序列模型与预测 2 | 3 | ### 白噪声 4 | 5 | 可以通过 Box-Ljung 检验来检验序列是否为白噪声: 6 | 7 | ```R 8 | > set.seed(100) 9 | > data = rnorm(100) 10 | > Box.test(data, type='Ljung', lag = log(length(data))) 11 | 12 | Box-Ljung test 13 | 14 | data: data 15 | X-squared = 8.896, df = 4.6052, p-value = 0.09169 16 | ``` 17 | 18 | 从结果中可以看见 $p = 0.09169 > 0.05$,因此无法拒绝序列为白噪声的假设。下面绘制一下该序列的图像以及 ACF 图像: 19 | 20 | ```R 21 | > op <- par(mfrow=c(2, 1), mar=c(5, 4, 2, 2) + .1) 22 | > plot(ts(data)) 23 | > acf(z, main = "") 24 | > par(op) 25 | ``` 26 | 27 | ![image-20210924205843412](.\typora-user-images\image-20210924205843412.png) 28 | 29 | ### AR(p) 序列 30 | 31 | 先给出一个 AR(1) 的手工计算例子,在这个例子中可以通过 $y_{n-1}$ 预测 $y_n$ 32 | 33 | ```R 34 | > n <- 200 35 | > x <- rnorm(n) 36 | > f = c(1,2) 37 | > y1 = x[1]; y1 38 | [1] 1 39 | > y2 = x[2] + f[1] * y1; y2 40 | [1] 3 41 | > y3 = x[3] + f[1] * y2 + f[2] * y1; y3 42 | [1] 8 43 | > y4 = x[4] + f[1] * y3 + f[2] * y2; y4 44 | [1] 18 45 | ``` 46 | 47 | 实际上也可以通过 `filter()` 函数来计算: 48 | 49 | ```R 50 | > x = 1:10; x 51 | [1] 1 2 3 4 5 6 7 8 9 10 52 | > y = filter(x, c(1, 2), method='r'); y 53 | Time Series: 54 | Start = 1 55 | End = 10 56 | Frequency = 1 57 | [1] 1 3 8 18 39 81 166 336 677 1359 58 | ``` 59 | 60 | 下面计算一个 $p=3$ 的例子: 61 | 62 | ```R 63 | > n <- 200 64 | > x <- rnorm(n) 65 | > f = c(.3, -.7, .5) 66 | > y <- rep(0, n) 67 | > y[1:3] = x[1:3] 68 | > for (i in 4:n) { 69 | + y[i] <- f[1]*y[i-1] +f[2]*y[i-2] + f[3]*y[i-3] + x[i] 70 | + } 71 | > op <- par(mfrow=c(3,1), mar=c(2,4,2,2)+.1) 72 | > plot(ts(y), xlab="", ylab="AR(3)") 73 | > acf(y, main="", xlab="") 74 | > pacf(y, main="", xlab="") 75 | > par(op) 76 | ``` 77 | 78 | ![image-20210923195745948](.\typora-user-images\image-20210923195745948.png) 79 | 80 | 同样地,也可以通过 `filter()` 函数来计算: 81 | 82 | ```R 83 | > y = filter(x, c(.3, -.7, .5), method='r'); y 84 | > op <- par(mfrow=c(3,1), mar=c(2,4,2,2)+.1) 85 | > plot(ts(y), xlab="", ylab="AR(3)") 86 | > acf(y, main="", xlab="") 87 | > pacf(y, main="", xlab="") 88 | ``` 89 | 90 | ![image-20210923200033331](.\typora-user-images\image-20210923200033331.png) 91 | 92 | 结果是一样的。 93 | 94 | ### MA 模型 95 | 96 | 直接使用 `filter()` 函数计算 MA 模型: 97 | 98 | ```R 99 | > x = 1:10 100 | > y = filter(x, filter = c(.5, .3)); y # filter 函数未设置 method,默认为'c',即使用滑动平均 101 | Time Series: 102 | Start = 1 103 | End = 10 104 | Frequency = 1 105 | [1] 1.3 2.1 2.9 3.7 4.5 5.3 6.1 6.9 7.7 NA 106 | ``` 107 | 108 | 作业:编写手工计算 MA 模型的代码 109 | 110 | ### ARIMA 模型相关 111 | 112 | R 语言中自带的 `arima.sim()` 函数可以模拟生成 AR、MA、ARMA 或 ARIMA 模型的数据。其原型为: 113 | 114 | ```R 115 | arima.sim(model, n, rand.gen = rnorm, innov = rand.gen(n, ...), 116 | n.start = NA, start.innov = rand.gen(n.start, ...), 117 | ...) 118 | ``` 119 | 120 | 其中,`model` 是一个列表,用于指定各模型的系数;`order` 是 ARIMA(p, d, q) 中 $(p, d, q)$ 三个元素的向量,$p$ 为 AR 阶数, $q$ 是 MA 的阶数,$d$ 是差分阶数。例如,模拟如下的 ARIMA(1, 1, 1) 模型,并产生长度为300的样本: 121 | 122 | $Y_t = X_t - X_{t-1}, X_t = -0.9X_{t-1} + \varepsilon_t + 0.5\varepsilon_{t-1}, \varepsilon_t \sim WN(0, 2^2)$ 123 | 124 | R 语言代码为: 125 | 126 | ```R 127 | > x <- 2.0 * arima.sim(model = list( 128 | + ar = c(-0.9), ma = c(0.5), order = c(1, 1, 1)), n=300) 129 | ``` 130 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /TimeSeries/ARMA时间序列用到的数据集/population.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/ARMA时间序列用到的数据集/population.csv -------------------------------------------------------------------------------- /TimeSeries/ARMA时间序列用到的数据集/readme.md: -------------------------------------------------------------------------------- 1 | #### 本部分存储了ARMA模型案例:山西省教育人口逆差数据与其他相关数据,可以用stata或R语言进行分析。 2 | 3 | #### 数据来源:人口普查数据源于国家统计局;山西省人口数据来源山西省统计局《统计年鉴》。 4 | -------------------------------------------------------------------------------- /TimeSeries/ARMA时间序列用到的数据集/人口普查.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/ARMA时间序列用到的数据集/人口普查.xlsx -------------------------------------------------------------------------------- /TimeSeries/R 语言基础.md: -------------------------------------------------------------------------------- 1 | # R 语言基础 2 | 3 | R语言是一门常用于数据分析、统计建模的计算机语言,它与主流的C/C++、Java、Python等语言相比,支持更多的数据类型,例如向量、矩阵,同时提供了多种统计和数学计算方法。 4 | 5 | 可以前往 https://www.r-project.org/ 下载R语言解释器,并且推荐使用 RStudio 这个R语言的集成开发环境。RStudio 可以在 https://www.rstudio.com/ 下载。 6 | 7 | ## 四则运算 8 | 9 | R语言的四则运算与大部分语言相同,使用 `+​`, `-`, `*`, `/`, `^` 来表示加、减、乘、除和乘方。数值可以写成 `123`, `-123`, `123.45`, `1.23E-5`这样的形式。其中`1.23E-5`表示$1.23 \times 10^{-5}$ 。 10 | 11 | ## 字符串 12 | 13 | 用单引号 `'` 或双引号`"` 包裹起来的文字内容为字符串,如 `'hello, world'` 或 `'123456'`。 14 | 15 | ## 向量 16 | 17 | R 语言中可以通过 `c(...)` 来声明一个向量,例如 $\boldsymbol{x} = (1, 2, 3, 4, 5)$ 可以通过 `x <- c(1, 2, 3, 4, 5)` 来声明。 18 | 19 | 对两个长度相等的向量进行四则运算的效果是向量中的每一个元素都与另一个向量中的每一个元素进行四则运算。而一个向量与一个数进行四则运算的效果是该向量中的所有元素都与这个数进行四则运算。如: 20 | 21 | ```R 22 | > x <- c(1, 2, 3, 4, 5) 23 | > y <- c(1, 2, 3, 4, 5) 24 | > x + y # 输出: [1] 2 4 6 8 10 25 | > x + 1 # 输出: [1] 2 3 4 5 6 26 | ``` 27 | 28 | ## 矩阵 29 | 30 | R 语言中可以通过 `matrix()` 函数来创建矩阵。`matrix()` 的原型为 `matrix(data=NA, nrow=1, ncol=1, byrow=FALSE, dinames=NULL)` 其中: 31 | 32 | - `data` : 矩阵的元素,通常为向量。 33 | - `nrow` 和 `ncol` : 设定矩阵的行数和列数,一般只需设定其一,另一个会根据数据长度算出。 34 | - `byrow` : 设定矩阵的填充方式,值为 `TRUE` 时按行填充。默认为 `FALSE` ,即按列填充。 35 | 36 | 通过 `matrix()` 创建矩阵的例子如下: 37 | 38 | ```R 39 | > mat1 <- matrix(1:6, nrow=2) # 元素为1到6, 两行,按列填充 40 | > mat1 41 | [,1] [,2] [,3] 42 | [1,] 1 3 5 43 | [2,] 2 4 6 44 | 45 | > mat2 <- matrix(1:6, nrow=2, byrow=TRUE) 46 | > mat2 47 | [,1] [,2] [,3] 48 | [1,] 1 2 3 49 | [2,] 4 5 6 50 | ``` 51 | 52 | 此外还可以使用 `dim()` 通过向量来创建矩阵,例如: 53 | 54 | ```R 55 | > mat3 <- 1:6 56 | > dim(mat3) <- c(3, 2) # 将元素为1到6变为3行2列的矩阵 57 | > mat3 58 | [,1] [,2] 59 | [1,] 1 4 60 | [2,] 2 5 61 | [3,] 3 6 62 | ``` 63 | 64 | ## 生成时间序列 65 | 66 | 通过 `ts()` 函数可以将一个向量或矩阵转成一个一元或多元的时间序列(ts)对象,`ts()` 函数的原型为:`ts(data = NA, start = 1, end = numeric(0), frequency = 1, deltat = 1, ts.eps = getOption("ts.eps"), class, names)`。其中: 67 | 68 | - `data` 要生成时间序列的向量或矩阵。 69 | - `start` 第一个观测值的时间。 70 | - `end` 最后一个观测值的时间。 71 | - `frequency` 单位时间内观测值的频数。 72 | - `deltat` 两个观测值之间的时间间隔。 73 | - `ts.eps` 序列之间的误差限。若序列之间的频率差异小于 `ts.eps` 则认为这些序列的频率相等。 74 | - `class` 对象的类型。一元序列默认为 `ts`,多元序列默认为 `c("mts", "ts")` 。 75 | - `names` 给出多元序列中每个一元序列的名称,默认为 `Series 1, Series 2, ...` 。 76 | 77 | 下面是一个例子: 78 | 79 | ```R 80 | > ts(1:26, start = 1986) 81 | Time Series: 82 | Start = 1986 83 | End = 2011 84 | Frequency = 1 85 | [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 86 | [18] 18 19 20 21 22 23 24 25 26 87 | ``` 88 | 89 | ## 画图 90 | 91 | R 语言中可以直接使用 `plot()` 函数来绘制图像,例如: 92 | 93 | ```R 94 | > x <- rnorm(10) 95 | > plot(x) 96 | > x 97 | [1] -0.3329234 1.3631137 -0.4691473 0.8428756 98 | [5] -1.4579937 -0.4003059 -0.7764173 -0.3692965 99 | [9] 1.2401015 -0.1074338 100 | ``` 101 | 102 | ![image-20210924211135207](.\typora-user-images\image-20210924211135207.png) 103 | 104 | 还可以直接绘制时间序列的图像: 105 | 106 | ```R 107 | > plot(ts(x)) 108 | ``` 109 | 110 | ![image-20210924211220048](.\typora-user-images\image-20210924211220048.png) 111 | 112 | 为了将多幅图画在一起,可以使用 `par()` 函数: 113 | 114 | ```R 115 | > op <- par(mfrow=c(2, 1), mar=c(5, 4, 2, 2) + .1) # mfrow 指定了图像矩阵为两行一列,即画两幅图,每行一幅;mar 指定了图像的边界,分别是下、左、上、右,可以根据喜好指定 116 | > plot(ts(x)) 117 | > acf(z, main = "") # 计算 acf 函数 118 | ``` 119 | 120 | ![image-20210924211736213](.\typora-user-images\image-20210924211736213.png) -------------------------------------------------------------------------------- /TimeSeries/Time Series Analysis.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/Time Series Analysis.pdf -------------------------------------------------------------------------------- /TimeSeries/readme.md: -------------------------------------------------------------------------------- 1 |  2 | ## 简介 3 | 4 | 时间序列也称动态序列,是指将某种现象的指标数值按照时间顺序排列而成的数值序列。时间序列数据本质上反映的是某个或某些随机变量时间不断变化的趋势,而时间序列方法的核心就是从数据中挖掘出这种规律,并利用其对将来的数据做出估计。随着社会的进步和计算机技术的发展,时间序列分析的应用越来越广泛, 已在经济、气象、地质、水文、军事等领域产生了显著的经济效益和社会效益。 5 | 6 | 时间序列应用方向可大致分成三个部分,分别是描述过去、分析规律和预测未来。 7 | 8 | ### Task00:前置内容(2天) 9 | 10 | - 熟悉组队学习规则 11 | - 安装 R 解释器和 RStudio 12 | - 学习 R 语言的基础语法和常用函数 13 | - 数理统计基础(教程第一章) 14 | 15 | ### Task01:手算时间序列(2天) 16 | 17 | - 学习几种移动平均和指数平滑的时间序列处理方法(教程第二章) 18 | - 根据所学方法的原理编写相应的 R 语言代码 19 | 20 | ### Task02:常用的时间序列模型(3天) 21 | 22 | - 学习常用的时间序列模型(教程第三章) 23 | 24 | ### Task03:ARMA 模型与预测(4天) 25 | 26 | - 了解时间序列分析的流程 27 | - 了解几种常见的时间序列及其定阶 28 | 29 | 30 | 31 | 参考资料: 32 | 33 | - 《数学建模算法与程序》司守奎-海军航空工程学院 34 | - 数学模型 .高等教育出版社[引用日期2019-04-14] 35 | -------------------------------------------------------------------------------- /TimeSeries/typora-user-images/image-20210922175847365.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/typora-user-images/image-20210922175847365.png -------------------------------------------------------------------------------- /TimeSeries/typora-user-images/image-20210922180552465.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/typora-user-images/image-20210922180552465.png -------------------------------------------------------------------------------- /TimeSeries/typora-user-images/image-20210922185944045.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/typora-user-images/image-20210922185944045.png -------------------------------------------------------------------------------- /TimeSeries/typora-user-images/image-20210922191248078.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/typora-user-images/image-20210922191248078.png -------------------------------------------------------------------------------- /TimeSeries/typora-user-images/image-20210923195745948.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/typora-user-images/image-20210923195745948.png -------------------------------------------------------------------------------- /TimeSeries/typora-user-images/image-20210923200033331.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/typora-user-images/image-20210923200033331.png -------------------------------------------------------------------------------- /TimeSeries/typora-user-images/image-20210924203402681.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/typora-user-images/image-20210924203402681.png -------------------------------------------------------------------------------- /TimeSeries/typora-user-images/image-20210924204531153.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/typora-user-images/image-20210924204531153.png -------------------------------------------------------------------------------- /TimeSeries/typora-user-images/image-20210924205843412.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/typora-user-images/image-20210924205843412.png -------------------------------------------------------------------------------- /TimeSeries/typora-user-images/image-20210924211135207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/typora-user-images/image-20210924211135207.png -------------------------------------------------------------------------------- /TimeSeries/typora-user-images/image-20210924211220048.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/typora-user-images/image-20210924211220048.png -------------------------------------------------------------------------------- /TimeSeries/typora-user-images/image-20210924211736213.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/TimeSeries/typora-user-images/image-20210924211736213.png -------------------------------------------------------------------------------- /TimeSeries/手算时间序列.md: -------------------------------------------------------------------------------- 1 | # 手算时间序列 2 | 3 | ## 简单移动平均 4 | 5 | 我们先来自己实现一个计算简单移动平均的函数: 6 | 7 | ```R 8 | mySMA <- function (x, n) { 9 | sma <- c() 10 | sma[1:(n-1)] <- NA 11 | for (i in n:length(x)) { 12 | sma[i] <- mean(x[(i-n+1):i]) 13 | } 14 | return(sma) 15 | } 16 | 17 | > x = c(2, 3, 3, 4, 2, 3, 3, 5, 2, 3) 18 | > mySMA(x, n = 4) 19 | [1] NA NA NA 3.00 3.00 3.00 3.00 3.25 3.25 3.25 20 | ``` 21 | 22 | R 语言中的 TTR 包提供的 SMA 函数也可以实现简单移动平均的计算。首先确保 R 语言解释器的版本在 4.2.0以上(在 RStudio 中键入 `R.version` 中可查看 R 解释器的版本)。进入 https://cran.r-project.org/web/packages/TTR/index.html ,下载系统对应的 xts, zoo, curl 和 TTR 包所需要的包,并在 RStudio -> Tools -> Installs Packages 中选择下载的包进行安装。随后通过 `library(xts)` , `library(zoo)`, `library(curl)` 和 `library(TTR)` 导入相应的包。 23 | 24 | 例如对于数据 $2, 3, 3, 4, 2, 3, 3, 5, 2, 3$ 。 假设当前观测值只受到过去4期数值影响,可以通过如下的方法计算: 25 | 26 | ```R 27 | > x = c(2, 3, 3, 4, 2, 3, 3, 5, 2, 3) 28 | > SMA(x, n = 4) 29 | [1] NA NA NA 3.00 3.00 3.00 3.00 3.25 3.25 3.25 30 | ``` 31 | 32 | ## 指数移动平均 33 | 34 | 老样子,我们先来试着自己实现一下指数移动平均: 35 | 36 | ```R 37 | myEMA <- function (price,n){ 38 | ema <- c() 39 | ema[1:(n-1)] <- NA 40 | ema[n]<- mean(price[1:n]) 41 | beta <- 2/(n+1) 42 | for (i in (n+1):length(price)){ 43 | ema[i]<-beta * price[i] + 44 | (1-beta) * ema[i-1] 45 | } 46 | return(ema) 47 | } 48 | ``` 49 | 50 | ```R 51 | > x = c(2, 3, 3, 4, 2, 3, 3, 5, 2, 3) 52 | > myEMA(x, n = 4) 53 | [1] NA NA NA 3.000000 2.600000 54 | [6] 2.760000 2.856000 3.713600 3.028160 3.016896 55 | ``` 56 | 57 | 再来试试 TTR 包提供的指数移动平均: 58 | 59 | ```R 60 | > EMA(x, n=4) 61 | [1] NA NA NA 3.000000 2.600000 62 | [6] 2.760000 2.856000 3.713600 3.028160 3.016896 63 | ``` 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /TimeSeries/时间序列参考网课与教材.md: -------------------------------------------------------------------------------- 1 | # 时间序列参考网课与教材 2 | 3 | 本部分推荐的网课与教材均为辅助学习使用,不做强制打卡要求。大家可以根据实际情况来自行选择。 4 | 5 | - 《时间序列分析及应用R语言》系列课程视频 6 | https://www.bilibili.com/video/BV1Hz4y167fD?from=search&seid=8685454508264223591&spm_id_from=333.337.0.0 7 | - 时间序列分析的基本思路与步骤 8 | https://www.bilibili.com/video/BV1454y1v79B?from=search&seid=8685454508264223591&spm_id_from=333.337.0.0 9 | - 高级计量经济学及Stata应用(第二版)陈 强 编著-高等教育出版社 -------------------------------------------------------------------------------- /TimeSeries/统计与时间序列分析基础.md: -------------------------------------------------------------------------------- 1 | # 统计与时间序列分析基础 2 | 3 | ## 平均值 4 | 5 | ```R 6 | > y = array(1:20, dim=c(4, 5)) 7 | > y 8 | [,1] [,2] [,3] [,4] [,5] 9 | [1,] 1 5 9 13 17 10 | [2,] 2 6 10 14 18 11 | [3,] 3 7 11 15 19 12 | [4,] 4 8 12 16 20 13 | > mean(y) # 对矩阵中的所有元素求平均值 14 | [1] 10.5 15 | > colMeans(y) # 计算每行的均值 16 | [1] 2.5 6.5 10.5 14.5 18.5 17 | > rowMeans(y) # 列均值 18 | [1] 9 10 11 12 19 | ``` 20 | 21 | ## 方差和标准差 22 | 23 | ```R 24 | > x = exp(seq(-1, 3, by=0.1)) # 从-1到3,步长为0.1 25 | > x 26 | [1] 0.3678794 0.4065697 0.4493290 0.4965853 27 | [5] 0.5488116 0.6065307 0.6703200 0.7408182 28 | [9] 0.8187308 0.9048374 1.0000000 1.1051709 29 | [13] 1.2214028 1.3498588 1.4918247 1.6487213 30 | [17] 1.8221188 2.0137527 2.2255409 2.4596031 31 | [21] 2.7182818 3.0041660 3.3201169 3.6692967 32 | [25] 4.0552000 4.4816891 4.9530324 5.4739474 33 | [29] 6.0496475 6.6858944 7.3890561 8.1661699 34 | [33] 9.0250135 9.9741825 11.0231764 12.1824940 35 | [37] 13.4637380 14.8797317 16.4446468 18.1741454 36 | > var(x) # 计算方差 37 | [1] 29.35325 38 | > sd(x) # 计算标准差 39 | [1] 5.417864 40 | ``` 41 | 42 | ## 偏度和峰度 43 | 44 | 可以通过自己编写函数来计算偏度和峰度: 45 | 46 | ```R 47 | > skewness <- function(x) { sum(((x-mean(x)) ^ 3)) / length(x) } # 计算偏度 48 | > skewnexx(x) 49 | [1] 197.8397 50 | > kurtosis <- function(x) { 51 | + a = mean(x) 52 | + n = length(x) 53 | + m4 = sum((x-a)^4)/n 54 | + m2 = sum((x-a)^2)/n 55 | + kurt = m4/m2^2-3 56 | + kurt 57 | + } # 计算峰度 58 | > kurtosis(x) 59 | [1] 0.6260693 60 | ``` 61 | 62 | 也可以通过 moments 包中的 skewness 和 kurtosis 函数来计算偏度和峰度。 63 | 64 | 首先通过 `> install.packages(moments)` 来安装 moments 包,然后通过 `> library(moments) ` 来使用这个包。之后就可以直接通过 `skewness()` 和 `kurtosis()` 来计算偏度和峰度。 65 | 66 | ## 重要的概率分布 67 | 68 | ### 正态分布 69 | 70 | 通过 `rnorm()` 函数可以产生服从正态分布的随机数,`rnorm()` 函数的原型为 `rnorm(n, mean=0, sd=1)` ,其中 `n` 为生成数据个数,`mean` 为生成数据的均值,`sd` 为生成数据的标准差。例如: 71 | 72 | ```R 73 | > norm = rnorm(1000, 0, 1) 74 | > mean(norm) 75 | [1] 0.001165962 76 | > sd(norm) 77 | [1] 1.000664 78 | > hist(norm, prob=TRUE, 30) # 绘制频率分布直方图 79 | > curve(dnorm, add=TRUE) # 为直方图添加正态分布曲线 80 | ``` 81 | 82 | ![image-20210922175847365](.\typora-user-images\image-20210922175847365.png) 83 | 84 | ### $\chi^2$ 分布 85 | 86 | 可以通过 `rchisq(n, df)` 来产生 n 个 服从自由度为 df 的 $\chi^2$ 分布的随机数 87 | 88 | ```R 89 | > rchisq(n=1000, df=20) 90 | > hist(chi, prob=TRUE, 30) 91 | ``` 92 | 93 | ![image-20210922180552465](.\typora-user-images\image-20210922180552465.png) 94 | 95 | ### $t$ 分布 96 | 97 | ```R 98 | > t = rt(n=1000, df=5) 99 | > hist(t, prob=TRUE, 30) 100 | ``` 101 | 102 | ![image-20210922185944045](.\typora-user-images\image-20210922185944045.png) 103 | 104 | ### $F$ 分布 105 | 106 | ```R 107 | > f = rf(n=1000, df1=10, df2=50) 108 | > hist(f, prob=TRUE, 30) 109 | ``` 110 | 111 | ![image-20210922191248078](.\typora-user-images\image-20210922191248078.png) -------------------------------------------------------------------------------- /WeatherOceanForecasts/2.Docker提交.md: -------------------------------------------------------------------------------- 1 | # Docker提交 2 | 3 | 本次竞赛的Docker提交大致可以分为两小块: 4 | 5 | 1. 线下文件准备好:包括DockerFile,代码,预测的代码; 6 | 2. Build同时pull提交 7 | 8 | 如果之前没有提交过docker,可以根据这篇教程熟悉一下:https://tianchi.aliyun.com/forum/postDetail?spm=5176.12586969.1002.9.51df4127FoZKeL&postId=165595 9 | 10 | 11 | ## 线下文件准备 12 | 13 | ### Requirement 14 | 15 | - 运行代码所依赖的python库,缺什么就把需要装的文件放在requirement下面 16 | 17 | 18 | ```python 19 | numpy 20 | tensorflow==2.2.0 21 | ``` 22 | 23 | ### 运行的代码 24 | 25 | #### 放在code下面即可 26 | 27 | 28 | ```python 29 | import tensorflow as tf 30 | import tensorflow.keras.backend as K 31 | from tensorflow.keras.layers import * 32 | from tensorflow.keras.models import * 33 | from tensorflow.keras.optimizers import * 34 | from tensorflow.keras.callbacks import * 35 | from tensorflow.keras.layers import Input 36 | import numpy as np 37 | import os 38 | import zipfile 39 | 40 | def RMSE(y_true, y_pred): 41 | return tf.sqrt(tf.reduce_mean(tf.square(y_true - y_pred))) 42 | 43 | def build_model(): 44 | inp = Input(shape=(12,24,72,4)) 45 | 46 | x_4 = Dense(1, activation='relu')(inp) 47 | x_3 = Dense(1, activation='relu')(tf.reshape(x_4,[-1,12,24,72])) 48 | x_2 = Dense(1, activation='relu')(tf.reshape(x_3,[-1,12,24])) 49 | x_1 = Dense(1, activation='relu')(tf.reshape(x_2,[-1,12])) 50 | 51 | x = Dense(64, activation='relu')(x_1) 52 | x = Dropout(0.25)(x) 53 | x = Dense(32, activation='relu')(x) 54 | x = Dropout(0.25)(x) 55 | output = Dense(24, activation='linear')(x) 56 | model = Model(inputs=inp, outputs=output) 57 | 58 | adam = tf.optimizers.Adam(lr=1e-3,beta_1=0.99,beta_2 = 0.99) 59 | model.compile(optimizer=adam, loss=RMSE) 60 | 61 | return model 62 | 63 | model = build_model() 64 | model.load_weights('./user_data/model_data/model_mlp_baseline.h5') 65 | 66 | test_path = './tcdata/enso_round1_test_20210201/' 67 | 68 | ### 1. 测试数据读取 69 | files = os.listdir(test_path) 70 | test_feas_dict = {} 71 | for file in files: 72 | test_feas_dict[file] = np.load(test_path + file) 73 | 74 | ### 2. 结果预测 75 | test_predicts_dict = {} 76 | for file_name,val in test_feas_dict.items(): 77 | test_predicts_dict[file_name] = model.predict(val).reshape(-1,) 78 | # test_predicts_dict[file_name] = model.predict(val.reshape([-1,12])[0,:]) 79 | 80 | ### 3.存储预测结果 81 | for file_name,val in test_predicts_dict.items(): 82 | np.save('./result/' + file_name,val) 83 | 84 | #打包目录为zip文件(未压缩) 85 | def make_zip(source_dir='./result/', output_filename = 'result.zip'): 86 | zipf = zipfile.ZipFile(output_filename, 'w') 87 | pre_len = len(os.path.dirname(source_dir)) 88 | source_dirs = os.walk(source_dir) 89 | print(source_dirs) 90 | for parent, dirnames, filenames in source_dirs: 91 | print(parent, dirnames) 92 | for filename in filenames: 93 | if '.npy' not in filename: 94 | continue 95 | pathfile = os.path.join(parent, filename) 96 | arcname = pathfile[pre_len:].strip(os.path.sep) #相对路径 97 | zipf.write(pathfile, arcname) 98 | zipf.close() 99 | make_zip() 100 | ``` 101 | 102 | #### run.sh 103 | 104 | - 运行预测的代码 105 | 106 | 107 | ```python 108 | #!/bin/sh 109 | CURDIR="`dirname $0`" #获取此脚本所在目录 110 | echo $CURDIR 111 | cd $CURDIR #切换到该脚本所在目录 112 | python /code/mlp_predict.py 113 | ``` 114 | 115 | ### DockerFile 116 | 117 | 118 | ```python 119 | # Base Images 120 | ## 从天池基础镜像构建 121 | FROM registry.cn-shanghai.aliyuncs.com/tcc-public/tensorflow:latest-cuda10.0-py3 122 | 123 | ## 把当前文件夹里的文件构建到镜像的根目录下(.后面有空格,不能直接跟/) 124 | ADD . / 125 | 126 | ## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行) 127 | WORKDIR / 128 | 129 | ## Install Requirements(requirements.txt包含python包的版本) 130 | ## 这里使用清华镜像加速安装 131 | RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip 132 | RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt 133 | #RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt 134 | 135 | ## 镜像启动后统一执行 sh run.sh 136 | CMD ["sh", "run.sh"] 137 | ``` 138 | 139 | ### 其它 140 | 141 | - 按照官方要求把所需的文件全部按要求准备好即可。 142 | 143 | ## 线上提交 144 | 145 | 在所有的文件都准备之后,下面一步就是进行线上的提交,这里又分为三块。 146 | 147 | 1. 按照要求进行线上配置 148 | 2. 进行build和pull; 149 | 3. 提交 150 | 151 | ### 按照要求进行线上配置 152 | 153 | first_step 154 | 155 | \\ 156 | 157 | first_step 158 | 159 | 160 | 161 | ### 进行build和pull; 162 | 163 | 164 | first_step 165 | \\ 166 | first_step 167 | \\ 168 | first_step 169 | 170 | 171 | 172 | 173 | ```python 174 | #### 1.登录 175 | sudo docker login --username="自己的用户名" registry.cn-shenzhen.aliyuncs.com 176 | #### 2.build 177 | docker build registry.cn-shenzhen.aliyuncs.com/ai_earth_baseline/test_ai_earth_submit:1.0 . 178 | #### 3.push 179 | docker push registry.cn-shenzhen.aliyuncs.com/ai_earth_baseline/test_ai_earth_submit:1.0 180 | ``` 181 | 182 | ### 提交 183 | 184 | 185 | first_step 186 | 187 | 根据自己的不同进行提交即可,如果不出意外,等待一会儿,线上跑完了就会有结果了。 188 | 189 | first_step 190 | 191 | 192 | 193 | ```python 194 | 195 | ``` 196 | -------------------------------------------------------------------------------- /WeatherOceanForecasts/README.md: -------------------------------------------------------------------------------- 1 | ## 任务安排 2 | 3 | 开营时间:02月16日21:00 4 | 5 | 比赛地址:https://tianchi.aliyun.com/s/d3bcf37c856703fec5903c40ea323710 6 | 7 | 开源内容:https://github.com/datawhalechina/team-learning-data-mining/tree/master/WeatherOceanForecasts 8 | 9 | ### Task00:熟悉规则(1天) 10 | 11 | - 组队、修改群昵称。 12 | - 熟悉打卡规则。 13 | - 打卡截止时间:02月18日03:00 14 | 15 | ### Task01:比赛全流程体验(3天) 16 | 17 | - 学习如何使用Docker提交代码及比赛上分。 18 | - 记录比赛中遇到的问题,并在学习笔记中插入初始分数截图。 19 | - 打卡截止时间:02月21日03:00 20 | - 学习资料: 21 | - [Docker环境配置指南!](https://tianchi.aliyun.com/competition/entrance/231759/tab/226) 22 | - [比赛Docker相关操作](https://github.com/datawhalechina/team-learning-data-mining/blob/master/WeatherOceanForecasts/docker%E7%9B%B8%E5%85%B3.md) 23 | 24 | ### Task02:Baseline学习及改进(5天) 25 | 26 | - 学习baseline,并提出自己的改进策略,提交代码并更新自己的分数排名。 27 | - 在学习笔记中插入改进baseline之后分数排名截图。 28 | - 打卡截止时间:02月26日03:00 29 | - 学习资料: 30 | - [Baseline学习及上分技巧](https://github.com/datawhalechina/team-learning-data-mining/blob/master/WeatherOceanForecasts/baseline%E7%9B%B8%E5%85%B3.md) 31 | 32 | ### Task03:学习者分享(2天) 33 | 34 | - 我们根据截图,邀请提分比较多的学习者进行分享。 -------------------------------------------------------------------------------- /WeatherOceanForecasts/code/mlp_predict.py: -------------------------------------------------------------------------------- 1 | import tensorflow as tf 2 | import tensorflow.keras.backend as K 3 | from tensorflow.keras.layers import * 4 | from tensorflow.keras.models import * 5 | from tensorflow.keras.optimizers import * 6 | from tensorflow.keras.callbacks import * 7 | from tensorflow.keras.layers import Input 8 | import numpy as np 9 | import os 10 | import zipfile 11 | 12 | def RMSE(y_true, y_pred): 13 | return tf.sqrt(tf.reduce_mean(tf.square(y_true - y_pred))) 14 | 15 | def build_model(): 16 | inp = Input(shape=(12,24,72,4)) 17 | 18 | x_4 = Dense(1, activation='relu')(inp) 19 | x_3 = Dense(1, activation='relu')(tf.reshape(x_4,[-1,12,24,72])) 20 | x_2 = Dense(1, activation='relu')(tf.reshape(x_3,[-1,12,24])) 21 | x_1 = Dense(1, activation='relu')(tf.reshape(x_2,[-1,12])) 22 | 23 | x = Dense(64, activation='relu')(x_1) 24 | x = Dropout(0.25)(x) 25 | x = Dense(32, activation='relu')(x) 26 | x = Dropout(0.25)(x) 27 | output = Dense(24, activation='linear')(x) 28 | model = Model(inputs=inp, outputs=output) 29 | 30 | adam = tf.optimizers.Adam(lr=1e-3,beta_1=0.99,beta_2 = 0.99) 31 | model.compile(optimizer=adam, loss=RMSE) 32 | 33 | return model 34 | 35 | model = build_model() 36 | model.load_weights('./user_data/model_data/model_mlp_baseline.h5') 37 | 38 | test_path = './tcdata/enso_round1_test_20210201/' 39 | 40 | ### 1. 测试数据读取 41 | files = os.listdir(test_path) 42 | test_feas_dict = {} 43 | for file in files: 44 | test_feas_dict[file] = np.load(test_path + file) 45 | 46 | ### 2. 结果预测 47 | test_predicts_dict = {} 48 | for file_name,val in test_feas_dict.items(): 49 | test_predicts_dict[file_name] = model.predict(val).reshape(-1,) 50 | # test_predicts_dict[file_name] = model.predict(val.reshape([-1,12])[0,:]) 51 | 52 | ### 3.存储预测结果 53 | for file_name,val in test_predicts_dict.items(): 54 | np.save('./result/' + file_name,val) 55 | 56 | #打包目录为zip文件(未压缩) 57 | def make_zip(source_dir='./result/', output_filename = 'result.zip'): 58 | zipf = zipfile.ZipFile(output_filename, 'w') 59 | pre_len = len(os.path.dirname(source_dir)) 60 | source_dirs = os.walk(source_dir) 61 | print(source_dirs) 62 | for parent, dirnames, filenames in source_dirs: 63 | print(parent, dirnames) 64 | for filename in filenames: 65 | if '.npy' not in filename: 66 | continue 67 | pathfile = os.path.join(parent, filename) 68 | arcname = pathfile[pre_len:].strip(os.path.sep) #相对路径 69 | zipf.write(pathfile, arcname) 70 | zipf.close() 71 | make_zip() 72 | -------------------------------------------------------------------------------- /WeatherOceanForecasts/pic/1st.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/WeatherOceanForecasts/pic/1st.jpeg -------------------------------------------------------------------------------- /WeatherOceanForecasts/pic/2nd.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/WeatherOceanForecasts/pic/2nd.jpeg -------------------------------------------------------------------------------- /WeatherOceanForecasts/pic/3rd.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/WeatherOceanForecasts/pic/3rd.jpeg -------------------------------------------------------------------------------- /WeatherOceanForecasts/pic/first_step.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/WeatherOceanForecasts/pic/first_step.jpeg -------------------------------------------------------------------------------- /WeatherOceanForecasts/pic/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/WeatherOceanForecasts/pic/logo.jpg -------------------------------------------------------------------------------- /WeatherOceanForecasts/pic/metric.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/WeatherOceanForecasts/pic/metric.jpg -------------------------------------------------------------------------------- /WeatherOceanForecasts/pic/score.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/WeatherOceanForecasts/pic/score.jpeg -------------------------------------------------------------------------------- /WeatherOceanForecasts/pic/second_step.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/WeatherOceanForecasts/pic/second_step.jpeg -------------------------------------------------------------------------------- /WeatherOceanForecasts/pic/submit.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/WeatherOceanForecasts/pic/submit.jpeg -------------------------------------------------------------------------------- /WeatherOceanForecasts/requirements.txt: -------------------------------------------------------------------------------- 1 | numpy 2 | tensorflow==2.2.0 3 | 4 | -------------------------------------------------------------------------------- /WeatherOceanForecasts/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | CURDIR="`dirname $0`" #获取此脚本所在目录 3 | echo $CURDIR 4 | cd $CURDIR #切换到该脚本所在目录 5 | python /code/mlp_predict.py -------------------------------------------------------------------------------- /WeatherOceanForecasts/user_data/model_data/model_mlp_baseline.h5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datawhalechina/team-learning-data-mining/2f79d909376009fe671b83457a40b58d43d57a03/WeatherOceanForecasts/user_data/model_data/model_mlp_baseline.h5 -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 |  2 | ## 简介 3 | 4 | 本项目主要存储Datawhale组队学习中“数据挖掘/机器学习”方向的资料。 5 | 6 | 主要包括: 7 | - [概率统计](https://github.com/datawhalechina/team-learning-data-mining/tree/master/ProbabilityStatistics) 8 | - [线性代数](https://github.com/datawhalechina/team-learning-data-mining/tree/master/LinearAlgebra) 9 | - [集成学习](https://github.com/datawhalechina/team-learning-data-mining/tree/master/EnsembleLearning) 10 | - [AI入门体验](https://github.com/datawhalechina/team-learning-data-mining/tree/master/IntroductionExperienceAI) 11 | - [神经网络基础](https://github.com/datawhalechina/team-learning-data-mining/tree/master/NeuralNetwork) 12 | - [动手学数据分析](https://github.com/datawhalechina/team-learning-data-mining/tree/master/HandsOnDataAnalysis) 13 | - [机器学习算法基础](https://github.com/datawhalechina/team-learning-data-mining/tree/master/MachineLearningFundamentals) 14 | - [数据挖掘实践(房租预测)](https://github.com/datawhalechina/team-learning-data-mining/tree/master/RentForecast) 15 | - [数据挖掘实战(异常检测)](https://github.com/datawhalechina/team-learning-data-mining/tree/master/AnomalyDetection) 16 | - [数据挖掘实践(金融风控)](https://github.com/datawhalechina/team-learning-data-mining/tree/master/FinancialRiskControl) 17 | - [数据挖掘实践(心跳信号分类)](https://github.com/datawhalechina/team-learning-data-mining/tree/master/HeartbeatClassification) 18 | - [数据挖掘实践(气象海洋预测)](https://github.com/datawhalechina/team-learning-data-mining/tree/master/WeatherOceanForecasts) 19 | - [数据挖掘实践(二手车价格预测)](https://github.com/datawhalechina/team-learning-data-mining/tree/master/SecondHandCarPriceForecast) 20 | - [数据挖掘实践(城市管理大数据)](https://github.com/datawhalechina/team-learning-data-mining/tree/master/CityManagement) 21 | - [数据挖掘实践(资金流入流出预测)](https://github.com/datawhalechina/team-learning-data-mining/tree/master/PurchaseAndRedemptionForecast) 22 | - [数据分析实践(学术前沿趋势分析)](https://github.com/datawhalechina/team-learning-data-mining/tree/master/AcademicTrends) 23 | 24 | 25 | 26 | 27 | ## 备注 28 | 29 | 有关组队学习的开源内容 30 | 31 | - [team-learning](https://github.com/datawhalechina/team-learning):主要展示Datawhale的组队学习计划。 32 | - [team-learning-program](https://github.com/datawhalechina/team-learning-program):主要存储Datawhale组队学习中“编程、数据结构与算法”方向的资料。 33 | - [team-learning-data-mining](https://github.com/datawhalechina/team-learning-data-mining):主要存储Datawhale组队学习中“数据挖掘/机器学习”方向的资料。 34 | - [team-learning-nlp](https://github.com/datawhalechina/team-learning-nlp):主要存储Datawhale组队学习中“自然语言处理”方向的资料。 35 | - [team-learning-cv](https://github.com/datawhalechina/team-learning-cv):主要存储Datawhale组队学习中“计算机视觉”方向的资料。 36 | - [team-learning-rs](https://github.com/datawhalechina/team-learning-rs):主要存储Datawhale组队学习中“推荐系统”方向的资料。 37 | - [team-learning-rl](https://github.com/datawhalechina/team-learning-rl):主要存储Datawhale组队学习中“强化学习”方向的资料。 -------------------------------------------------------------------------------- /wisdomOcean/read_all_data.py: -------------------------------------------------------------------------------- 1 | # -*- codeing = utf-8 -*- 2 | # @Time : 2021/3/7 22:23 3 | # @Author : Evan_wyl 4 | # @File : read_all_data.py 5 | import pandas as pd 6 | 7 | 8 | def read_train_file(filename=None): 9 | # 替换数据存放的路径 10 | Path = "D:/code_sea/data/train/hy_round1_train_20200102/" 11 | return pd.read_csv(Path + filename,encoding="utf-8") 12 | 13 | def read_test_file(filename=None): 14 | # 替换数据存放的路径 15 | Path = "D:/code_sea/data/test/hy_round1_testA_20200102/" 16 | return pd.read_csv(Path + filename,encoding="utf-8") 17 | 18 | -------------------------------------------------------------------------------- /wisdomOcean/readme.md: -------------------------------------------------------------------------------- 1 | # 竞赛介绍 2 | 该比赛是来源于2020数字中国创新大赛-数字政府赛道。 3 | 4 | 本赛题围绕“智慧海洋建设,赋能海上安全治理能力现代化”展开。而船舶避碰终端(AIS)、北斗定位终端等通信导航设备的应用,给海上交通和作业带来了极大便利,但同时存在设备信息使用不规范造成的巨大人身和财产损失,给海上安全治理带来了新的挑战。 5 | 6 | 本赛题基于船舶轨迹位置数据对海上目标进行智能识别和作业行为分析,要求选手通过分析渔船北斗设备位置数据,得出该船的生产作业行为,具体判断出是拖网作业、围网作业还是流刺网作业。同时,希望选手通过数据可视分析,挖掘更多海洋通信导航设备的应用价值。 7 | 8 | 基于赛题以上信息,我们对比赛top选手的代码进行了重新的梳理和整合以便于更适合我们本期的轨迹数据挖掘组队学习。 9 | 10 | 通过本次组队学习,我们希望你能获得以下能力: 11 | 12 | 1.掌握轨迹数据分析常用工具 13 | 14 | 2.掌握轨迹数据的分析能力。 15 | 16 | 3.通过轨迹数据的分析,学会去提取不同船舶作业类型所需要的不同特征信息。 17 | 18 | 4.掌握模型建立和模型融合等相关方法。 19 | 20 | # 竞赛题目 21 | 本赛题基于位置数据对海上目标进行智能识别和作业行为分析,要求选手通过分析渔船北斗设备位置数据,得出该船的生产作业行为,具体判断出是拖网作业、围网作业还是流刺网作业。初赛将提供11000条(其中7000条训练数据、2000条testA、2000条testB)渔船轨迹北斗数据。 22 | 23 | 复赛考虑以往渔船在海上作业时主要依赖AIS数据,北斗相比AIS数据,数据上报频率和数据质量均低于AIS数据,因此复赛拟加入AIS轨迹数据辅助北斗数据更好的做渔船类型识别,其中AIS数据与北斗数据的匹配需选手自行实现,具体细节复赛开赛时更新。同时,希望选手通过数据可视化与分析,挖掘更多海洋通信导航设备的应用价值。(本次组对学习未使用复赛数据) 24 | 25 | # 竞赛数据 26 | ## 初赛 27 | 初赛提供11000条渔船北斗数据,数据包含脱敏后的渔船ID、经纬度坐标、上报时间、速度、航向信息,由于真实场景下海上环境复杂,经常出现信号丢失,设备故障等原因导致的上报坐标错误、上报数据丢失、甚至有些设备疯狂上报等。 28 | 29 | ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210329225619655.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDEzMzMyNw==,size_16,color_FFFFFF,t_70) 30 | 31 | # 评估指标 32 | 33 | 以3种类别的各自F1值取平均做为评价指标,结果越大越好,具体计算公式如下: 34 | ![enter image description here](https://tianchi-public.oss-cn-hangzhou.aliyuncs.com/public/files/forum/157724301707699021577243017759.png) 35 | 36 | 其中P为某类别的准确率,R为某类别的召回率,评测程序f1函数为sklearn.metrics.f1_score,average='macro'。 37 | 38 | # 组队学习安排 39 | 40 | 在组队学习中,我们主要是针对初赛进行复盘总结形成的baseline学习方案。 41 | 所选用数据集为初赛的7000条训练数据、2000条testA进行操作与分析。 42 | 其中机器学习模型的评估指标选用的是F1函数。 43 | 44 | ### Task01:地理数据分析常用工具(3天) 45 | 46 | - 了解和学习shapely和geopandas的基本功能,掌握用python中的这两个库实现几何对象之间的空间操作方法。 47 | - 掌握folium和kepler.gl的数据可视化工具的使用。 48 | - 学习与掌握geohash编码方法。 49 | 50 | ### Task02:数据分析(2天) 51 | 52 | - 学习如何对AIS数据集整体概况进行分析,掌握船舶轨迹数据集的基本情况(缺失值、异常值) 53 | 54 | - 学习了解数据变量之间的相互关系、变量与预测值之间的存在关系。 55 | 56 | ### Task03:特征工程(3天) 57 | 58 | - 学习特征工程的基本概念 59 | 60 | - 学习top选手代码的轨迹数据特征工程构造方法,掌握针对轨迹数据实现构建有意义的特征工程 61 | 62 | ### Task04:模型建立(2天) 63 | 64 | - 学习如何选择合适的模型以及如何通过模型来进行特征选择 65 | 66 | - 掌握随机森林、lightGBM、Xgboost模型的使用。 67 | - 掌握贝叶斯优化方法的具体使用 68 | 69 | ### Task05:模型融合(2天) 70 | 71 | - 学习不同融合策略 72 | 73 | # 相关资料 74 | 75 | 一、比赛官网 76 | 77 | https://tianchi.aliyun.com/competition/entrance/231768/information 78 | 79 | 二、比赛数据和地理数据分析常用工具介绍中的附件数据 80 | 81 | 链接:https://pan.xunlei.com/s/VMX5JAhFN7ZmPaaCVsHQEVkrA1 82 | 提取码:hmtz 83 | 84 | 比赛数据在本次组队学习中只用到了hy_round1_testA_20200102与hy_round1_train_20200102文件。其中DF.csv和df_gpd_change.pkl 分别是Task1中所需要的数据。 其中DF.csv是将轨迹数据进行异常处理之后的数据,而df_gpd_change.pkl是将异常处理之后的数据进行douglas-peucker算法进行压缩之后的数据。 85 | 86 | 其中group_df.csv是task3 模型建立后用到的数据,group_df.csv是对轨迹数据进行特征提取之后的数据,其每一列代表一个特征,每一行代表每一个船舶id。 87 | 88 | 三、比赛开源方案 89 | 90 | 1. https://tianchi.aliyun.com/forum/postDetail?spm=5176.12586969.1002.3.163c24d1HiGiFo&postId=110644 (有源码,OTTO队伍) 91 | 92 | 2. https://tianchi.aliyun.com/forum/postDetail?postId=110932 (有源码,liu123的航空母舰) 93 | 94 | 3. https://tianchi.aliyun.com/forum/postDetail?postId=110928 (有源码,天才海神号) 95 | 96 | 4. https://tianchi.aliyun.com/forum/postDetail?postId=110710 (有源码,大白) 97 | 98 | 5. https://tianchi.aliyun.com/forum/postDetail?postId=108332 (有源码,初赛排名7,复赛排名12) 99 | 100 | 6. https://tianchi.aliyun.com/notebook-ai/detail?postId=114808 (有源码,蜗牛车,rank11) 101 | 102 | 7. https://tianchi.aliyun.com/forum/postDetail?postId=112041 (鱼佬) 103 | 104 | 8. https://tianchi.aliyun.com/forum/postDetail?postId=110943 (有源码,rank9) 105 | 106 | # 项目贡献情况 107 | 108 | - 项目构建与整合:李运佳 109 | - Task1 地理数据分析常用工具:李运佳 110 | - Task2 数据分析:李万业 111 | - Task3 特征工程:赵信达 112 | - Task4 模型建立:李运佳 113 | - task5 模型融合: 张晋 --------------------------------------------------------------------------------