标签分类
当前位置:首页 > > 电子书网盘下载
Python机器学习(塞巴斯蒂安) Python机器学习(塞巴斯蒂安)
码小辫

码小辫 提供上传

资源
10
粉丝
13
喜欢
306
评论
1

    Python机器学习(塞巴斯蒂安) PDF 中文影印版

    电子书
    • 发布时间:

    给大家带来的一篇关于相关的电子书资源,介绍了关于Python、机器学习方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小42.1MB,塞巴斯蒂安编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.9

  • Python机器学习(塞巴斯蒂安) PDF 下载
  • 下载地址:https://pan.baidu.com/s/1s5PRLrDfXXvZ2GrR_WPYMg
  • 分享码:ikk9
  • 读者评价

    内容上来说,对于各种方法原理上解释的通俗易懂,比较喜欢。方法实现都是基于sklearn包,非常实用。涉及的方法有限,作为入门非常合适。

    挺系统的介绍了机器学习的知识,有一定的实用性

    书本看完之后对使用sklearn有很大得帮助,但是书本里面的公式和原理讲解有些翻译错误

    内容介绍

    机器学习与预测分析正在改变企业和其他组织的运作方式,本书将带领读者进入预测分析的世界。全书共13章,除了简要介绍机器学习及Python在机器学习中的应用,还系统讲述了数据分类、数据预处理、模型优化、集成学习、回归、聚类、神经网络、深度学习等内容。本书将机器学习背后的基本理论与应用实践联系起来,通过这种方式让读者聚焦于如何正确地提出问题、解决问题。本书讲解了如何使用Python的核心元素以及强大的机器学习库,同时还展示了如何正确使用一系列统计模型。本书可作为学习数据科学的初学者及想进一步拓展数据科学领域认识的读者的参考书。同样,本书也适合计算机等相关专业的本科生、研究生阅读。

    内容节选

    python机器学习之神经网络实现

    神经网络在机器学习中有很大的应用,甚至涉及到方方面面。本文主要是简单介绍一下神经网络的基本理论概念和推算。同时也会介绍一下神经网络在数据分类方面的应用。

    首先,当我们建立一个回归和分类模型的时候,无论是用最小二乘法(OLS)还是最大似然值(MLE)都用来使得残差达到最小。因此我们在建立模型的时候,都会有一个loss function。

    而在神经网络里也不例外,也有个类似的loss function。

    对回归而言:

    对分类而言:

    然后同样方法,对于W开始求导,求导为零就可以求出极值来。

    关于式子中的W。我们在这里以三层的神经网络为例。先介绍一下神经网络的相关参数。

    第一层是输入层,第二层是隐藏层,第三层是输出层。

    在X1,X2经过W1的加权后,达到隐藏层,然后经过W2的加权,到达输出层

    其中,

    我们有:

    至此,我们建立了一个初级的三层神经网络。

    当我们要求其的loss function最小时,我们需要逆向来求,也就是所谓的backpropagation。

    我们要分别对W1和W2进行求导,然后求出其极值。

    从右手边开始逆推,首先对W2进行求导。

    代入损失函数公式:

    然后,我们进行化简:

    化简到这里,我们同理再对W1进行求导。

    我们可以发现当我们在做bp网络时候,有一个逆推回去的误差项,其决定了loss function 的最终大小。

    在实际的运算当中,我们会用到梯度求解,来求出极值点。

    总结一下来说,我们使用向前推进来理顺神经网络做到回归分类等模型。而向后推进来计算他的损失函数,使得参数W有一个最优解。

    当然,和线性回归等模型相类似的是,我们也可以加上正则化的项来对W参数进行约束,以免使得模型的偏差太小,而导致在测试集的表现不佳。

    Python 的实现:

    使用了KERAS的库

    解决线性回归: 

    model.add(Dense(1, input_dim=n_features, activation='linear', use_bias=True))
    
    # Use mean squared error for the loss metric and use the ADAM backprop algorithm
    model.compile(loss='mean_squared_error', optimizer='adam')
    
    # Train the network (learn the weights)
    # We need to convert from DataFrame to NumpyArray
    history = model.fit(X_train.values, y_train.values, epochs=100, 
         batch_size=1, verbose=2, validation_split=0)
    
    

    解决多重分类问题: 

    # create model
    model = Sequential()
    model.add(Dense(64, activation='relu', input_dim=n_features))
    model.add(Dropout(0.5))
    model.add(Dense(64, activation='relu'))
    model.add(Dropout(0.5))
    # Softmax output layer
    model.add(Dense(7, activation='softmax'))
    
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
    
    model.fit(X_train.values, y_train.values, epochs=20, batch_size=16)
    
    y_pred = model.predict(X_test.values)
    
    y_te = np.argmax(y_test.values, axis = 1)
    y_pr = np.argmax(y_pred, axis = 1)
    
    print(np.unique(y_pr))
    
    print(classification_report(y_te, y_pr))
    
    print(confusion_matrix(y_te, y_pr))

    当我们选取最优参数时候,有很多种解决的途径。这里就介绍一种是gridsearchcv的方法,这是一种暴力检索的方法,遍历所有的设定参数来求得最优参数。

    from sklearn.model_selection import GridSearchCV
    
    def create_model(optimizer='rmsprop'):
     model = Sequential()
     model.add(Dense(64, activation='relu', input_dim=n_features))
     model.add(Dropout(0.5))
     model.add(Dense(64, activation='relu'))
     model.add(Dropout(0.5))
     model.add(Dense(7, activation='softmax'))
     model.compile(loss='categorical_crossentropy', optimizer=optimizer, metrics=['accuracy'])
     
     return model
    
    model = KerasClassifier(build_fn=create_model, verbose=0)
    
    optimizers = ['rmsprop']
    epochs = [5, 10, 15]
    batches = [128]
    
    
    param_grid = dict(optimizer=optimizers, epochs=epochs, batch_size=batches, verbose=['2'])
    grid = GridSearchCV(estimator=model, param_grid=param_grid)
    
    grid.fit(X_train.values, y_train.values)
    

    目录

    • 译者序
    • 推荐序
    • 作者简介
    • 审校者简介
    • 前言
    • 第1章 赋予计算机学习数据的能力1
    • 1.1构建智能机器将数据转化为知识1
    • 1.2 机器学习的三种不同方法1
    • 1.2.1 通过监督学习对未来事件进行预测2
    • 1.2.2 通过强化学习解决交互式问题4
    • 1.2.3 通过无监督学习发现数据本身潜在的结构4
    • 1.2.4 基本术语及符号介绍5
    • 1.3 构建机器学习系统的蓝图6
    • 1.3.1 数据预处理6
    • 1.3.2 选择预测模型类型并进行训练7
    • 1.3.3 模型验证与使用未知数据进行预测8
    • 1.4 Python在机器学习中的应用8
    • 本章小结9
    • 第2章 机器学习分类算法10
    • 2.1 人造神经元—早期机器学习概览10
    • 2.2 使用Python实现感知器学习算法13
    • 2.3 自适应线性神经元及其学习的收敛性19
    • 2.3.1 通过梯度下降最小化代价函数20
    • 2.3.2 使用Python实现自适应线性神经元21
    • 2.3.3 大规模机器学习与随机梯度下降25
    • 本章小结29
    • 第3章 使用scikit-learn实现机器学习分类算法30
    • 3.1 分类算法的选择30
    • 3.2 初涉scikit-learn的使用30
    • 使用scikit-learn训练感知器31
    • 3.3 逻辑斯谛回归中的类别概率34
    • 3.3.1 初识逻辑斯谛回归与条件概率34
    • 3.3.2 通过逻辑斯谛回归模型的代价函数获得权重36
    • 3.3.3 使用scikit-learn训练逻辑斯谛回归模型37
    • 3.3.4 通过正则化解决过拟合问题39
    • 3.4 使用支持向量机最大化分类间隔41
    • 3.4.1 对分类间隔最大化的直观认识41
    • 3.4.2 使用松弛变量解决非线性可分问题42
    • 3.4.3 使用scikit-learn实现SVM44
    • 3.5 使用核SVM解决非线性问题44
    • 3.6 决策树48
    • 3.6.1 最大化信息增益—获知尽可能准确的结果49
    • 3.6.2 构建决策树52
    • 3.6.3 通过随机森林将弱分类器集成为强分类器53
    • 3.7 惰性学习算法—k-近邻算法54
    • 本章小结57
    • 第4章 数据预处理—构建好的训练数据集58
    • 4.1 缺失数据的处理58
    • 4.1.1 将存在缺失值的特征或样本删除59
    • 4.1.2 缺失数据填充60
    • 4.1.3 理解scikit-learn预估器的API60
    • 4.2 处理类别数据61
    • 4.2.1 有序特征的映射61
    • 4.2.2 类标的编码62
    • 4.2.3 标称特征上的独热编码63
    • 4.3 将数据集划分为训练数据集和测试数据集64
    • 4.4 将特征的值缩放到相同的区间65
    • 4.5 选择有意义的特征66
    • 4.5.1 使用L1正则化满足数据稀疏化67
    • 4.5.2 序列特征选择算法70
    • 4.6 通过随机森林判定特征的重要性74
    • 本章小结76
    • 第5章 通过降维压缩数据77
    • 5.1 无监督数据降维技术—主成分分析77
    • 5.1.1 总体方差与贡献方差78
    • 5.1.2 特征转换80
    • 5.1.3 使用scikit-learn进行主成分分析82
    • 5.2 通过线性判别分析压缩无监督数据84
    • 5.2.1 计算散布矩阵85
    • 5.2.2 在新特征子空间上选取线性判别算法87
    • 5.2.3 将样本映射到新的特征空间89
    • 5.2.4 使用scikit-learn进行LDA分析90
    • 5.3 使用核主成分分析进行非线性映射91
    • 5.3.1 核函数与核技巧91
    • 5.3.2 使用Python实现核主成分分析94
    • 5.3.3 映射新的数据点99
    • 5.3.4 scikit-learn中的核主成分分析102
    • 本章小结103
    • 第6章 模型评估与参数调优实战104
    • 6.1 基于流水线的工作流104
    • 6.1.1 加载威斯康星乳腺癌数据集104
    • 6.1.2 在流水线中集成数据转换及评估操作105
    • 6.2 使用k折交叉验证评估模型性能106
    • 6.2.1 holdout方法106
    • 6.2.2 k折交叉验证107
    • 6.3 通过学习及验证曲线来调试算法110
    • 6.3.1 使用学习曲线判定偏差和方差问题110
    • 6.3.2 通过验证曲线来判定过拟合与欠拟合112
    • 6.4 使用网格搜索调优机器学习模型113
    • 6.4.1 使用网络搜索调优超参114
    • 6.4.2 通过嵌套交叉验证选择算法115
    • 6.5 了解不同的性能评价指标116
    • 6.5.1 读取混淆矩阵116
    • 6.5.2 优化分类模型的准确率和召回率117
    • 6.5.3 绘制ROC曲线118
    • 6.5.4 多类别分类的评价标准121
    • 本章小结121
    • 第7章 集成学习—组合不同的模型122
    • 7.1 集成学习122
    • 7.2 实现一个简单的多数投票分类器125
    • 7.3 评估与调优集成分类器131
    • 7.4 bagging —通过bootstrap样本构建集成分类器135
    • 7.5 通过自适应boosting提高弱学习机的性能138
    • 本章小结143
    • 第8章 使用机器学习进行情感分析144
    • 8.1 获取IMDb电影评论数据集144
    • 8.2 词袋模型简介146
    • 8.2.1 将单词转换为特征向量146
    • 8.2.2 通过词频-逆文档频率计算单词关联度147
    • 8.2.3 清洗文本数据148
    • 8.2.4 标记文档149
    • 8.3 训练用于文档分类的逻辑斯谛回归模型151
    • 8.4 使用大数据—在线算法与外存学习152
    • 本章小结155
    • 第9章 在Web应用中嵌入机器学习模型156
    • 9.1 序列化通过scikit-learn拟合的模型156
    • 9.2 使用SQLite数据库存储数据158
    • 9.3 使用Flask开发Web应用160
    • 9.3.1 第一个Flask Web应用160
    • 9.3.2 表单验证及渲染161
    • 9.4 将电影分类器嵌入Web应用164
    • 9.5 在公共服务器上部署Web应用169
    • 本章小结172
    • 第10章 使用回归分析预测连续型目标变量173
    • 10.1 简单线性回归模型初探173
    • 10.2 波士顿房屋数据集174
    • 10.3 基于最小二乘法构建线性回归模型178
    • 10.3.1 通过梯度下降计算回归参数178
    • 10.3.2 使用scikit-learn估计回归模型的系数181
    • 10.4 使用RANSAC拟合高鲁棒性回归模型182
    • 10.5 线性回归模型性能的评估184
    • 10.6 回归中的正则化方法185
    • 10.7 线性回归模型的曲线化-多项式回归186
    • 10.7.1 房屋数据集中的非线性关系建模188
    • 10.7.2 使用随机森林处理非线性关系190
    • 本章小结193
    • 第11章 聚类分析——处理无类标数据194
    • 11.1 使用k-means算法对相似对象进行分组194
    • 11.1.1 k-means++196
    • 11.1.2 硬聚类与软聚类198
    • 11.1.3 使用肘方法确定簇的最佳数量199
    • 11.1.4 通过轮廓图定量分析聚类质量200
    • 11.2 层次聚类203
    • 11.2.1 基于距离矩阵进行层次聚类204
    • 11.2.2 树状图与热度图的关联207
    • 11.2.3 通过scikit-learn进行凝聚聚类208
    • 11.3 使用DBSCAN划分高密度区域209
    • 本章小结212
    • 第12章 使用人工神经网络识别图像213
    • 12.1 使用人工神经网络对复杂函数建模213
    • 12.1.1 单层神经网络回顾214
    • 12.1.2 多层神经网络架构简介215
    • 12.1.3 通过正向传播构造神经网络216
    • 12.2 手写数字的识别218
    • 12.2.1 获取MNIST数据集218
    • 12.2.2 实现一个多层感知器222
    • 12.3 人工神经网络的训练228
    • 12.3.1 计算逻辑斯谛代价函数228
    • 12.3.2 通过反向传播训练神经网络230
    • 12.4 建立对反向传播的直观认识231
    • 12.5 通过梯度检验调试神经网络232
    • 12.6 神经网络的收敛性236
    • 12.7 其他神经网络架构237
    • 12.7.1 卷积神经网络237
    • 12.7.2 循环神经网络238
    • 12.8 关于神经网络的实现239
    • 本章小结240
    • 第13章 使用Theano并行训练神经网络241
    • 13.1 使用Theano构建、编译并运行表达式241
    • 13.1.1 什么是Theano242
    • 13.1.2 初探Theano243
    • 13.1.3 配置Theano244
    • 13.1.4 使用数组结构245
    • 13.1.5 整理思路—线性回归示例247
    • 13.2 为前馈神经网络选择激励函数250
    • 13.2.1 逻辑斯谛函数概述250
    • 13.2.2 通过softmax函数评估多类别分类任务中的类别概率252
    • 13.2.3 通过双曲正切函数增大输出范围252
    • 13.3 使用Keras提高训练神经网络的效率254
    • 本章小结258

    上一篇:预测分析建模:Python与R语言实现  下一篇:Python金融实战(严玉星)

    展开 +

    收起 -

    相关电子书
    学习笔记

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明