标签分类
当前位置:首页 > 程序设计电子书 > Python电子书网盘下载
Python机器学习 Python机器学习
elec007yuwen

elec007yuwen 提供上传

资源
45
粉丝
45
喜欢
651
评论
6

    Python机器学习 PDF 中文影印版

    Python电子书
    • 发布时间:

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

  • Python机器学习 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1s5PRLrDfXXvZ2GrR_WPYM
  • 分享码:ikk7
  • 读者评价

    内容上来说,对于各种方法原理上解释的通俗易懂,比较喜欢。方法实现都是基于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金融实战(严玉星)

    展开 +

    收起 -

    Python 相关电子书
    关于Python的学习笔记
    网友NO.777307

    Python机器学习算法之k均值聚类(k-means)

    一开始的目的是学习十大挖掘算法(机器学习算法),并用编码实现一遍,但越往后学习,越往后实现编码,越发现自己的编码水平低下,学习能力低。这一个k-means算法用Python实现竟用了三天时间,可见编码水平之低,而且在编码的过程中看了别人的编码,才发现自己对numpy认识和运用的不足,在自己的代码中有很多可以优化的地方,比如求均值的地方可以用mean直接对数组求均值,再比如去最小值的下标,我用的是argsort排序再取列表第一个,但是有argmin可以直接用啊。下面的代码中这些可以优化的并没有改,这么做的原因是希望做到抛砖引玉,欢迎大家丢玉,如果能给出优化方法就更好了 一.k-means算法 人以类聚,物以群分,k-means聚类算法就是体现。数学公式不要,直接用白话描述的步骤就是: 1.随机选取k个质心(k值取决于你想聚成几类) 2.计算样本到质心的距离,距离质心距离近的归为一类,分为k类 3.求出分类后的每类的新质心 4.判断新旧质心是否相同,如果相同就代表已经聚类成功,如果没有就循环2-3直到相同 用程序的语言描述就是: 1.输入样本 2.随机去k个质心 3.重复下面过程知道算法收敛: 计算样本到质心距离(欧几里得距离) 样本距离哪个质心近,就记为那一类 计算每个类别的新质心(平均值) 二.需求分……

    网友NO.253067

    基于Python和Scikit-Learn的机器学习探索

    你好,%用户名%! 我叫Alex,我在机器学习和网络图分析(主要是理论)有所涉猎。我同时在为一家俄罗斯移动运营商开发大数据产品。这是我第一次在网上写文章,不喜勿喷。 现在,很多人想开发高效的算法以及参加机器学习的竞赛。所以他们过来问我:”该如何开始?”。一段时间以前,我在一个俄罗斯联邦政府的下属机构中领导了媒体和社交网络大数据分析工具的开发。我仍然有一些我团队使用过的文档,我乐意与你们分享。前提是读者已经有很好的数学和机器学习方面的知识(我的团队主要由MIPT(莫斯科物理与技术大学)和数据分析学院的毕业生构成)。 这篇文章是对数据科学的简介,这门学科最近太火了。机器学习的竞赛也越来越多(如,Kaggle, TudedIT),而且他们的资金通常很可观。 R和Python是提供给数据科学家的最常用的两种工具。每一个工具都有其优缺点,但Python最近在各个方面都有所胜出(仅为鄙人愚见,虽然我两者都用)。这一切的发生是因为Scikit-Learn库的腾空出世,它包含有完善的文档和丰富的机器学习算法。 请注意,我们将主要在这篇文章中探讨机器学习算法。通常用Pandas包去进行主数据分析会比较好,而且这很容易你自己完成。所以,让我们集中精力在实现上。为了确定性,我们假设有一个特……

    网友NO.450875

    《Python机器学习经典实例》学习感悟

    初衷 在看到一位产品经理制定机器学习的计划并实施后,产生了同样的念头,非技术都在了解学习机器学习,我有什么理由不去学呢? 关于本书 本书(《 Python 机器学习经典实例 》)的标题经典实例让我非常感兴趣。 一直认为学习任何新事物,先上手实现简单的demo,再分析这个demo做了什么,怎么做,才能更快的学习。如果是在初始阶段就大量的学习理论,只会对要学习的东西感到痛苦,这个有什么用啊?或者虽然每个字都能看懂,但放一起就不知道在说什么了。 幸运的是本书就同书名一样,上手就是实例,也穿插了必要的专有名词解释,总体来说还是能够跟得上进度。 并且给出了所使用的数据,能够和书中得到相同的结果,这一反馈更能够增强学习的意愿与兴趣。 但是另一方面,只给出结果,而没有原因,在一定程度上只是学会了书里面的知识,而无法从虚拟的例子映射到实际的现实问题。但鱼和熊掌不可得兼,专注做好一件事,对于机器学习的通俗解释,可以从另一本书中找到答案(还没找到这本书)。 总结 还是之前的观点,谈论一本书,要看书的受众、目标。而本书已经做到了它希望做到的 给出机器学习的实例。 ……

    网友NO.914993

    机器学习的框架推荐Python的原因

    13个机器学习的框架偏向于Python的原因,供大家参考,具体内容如下 前言 主要有以下原因: 1. Python是解释语言,程序写起来非常方便 写程序方便对做机器学习的人很重要。 因为经常需要对模型进行各种各样的修改,这在编译语言里很可能是牵一发而动全身的事情,Python里通常可以用很少的时间实现。 举例来说,在C等编译语言里写一个矩阵乘法,需要自己分配操作数(矩阵)的内存、分配结果的内存、手动对BLAS接口调用gemm、最后如果没用smart pointer还得手动回收内存空间。Python几乎就是import numpy; numpy.dot两句话的事。 当然现在很多面向C/C++库已经支持托管的内存管理了,这也让开发过程容易了很多,但解释语言仍然有天生的优势不需要编译时间。这对机器学习这种需要大量prototyping和迭代的研究方向是非常有益工作效率的。 2. Python的开发生态成熟,有很多有用的库可以用 除了上面说到的NumPy,还有SciPy、NLTK、os(自带)等等不一而足。Python灵活的语法还使得包括文本操作、list/dict comprehension等非常实用的功能非常容易高效实现(编写和运行效率都高),配合lambda等使用更是方便。这也是Python良性生态背后的一大原因。相比而言,Lua虽然也是解释语言,甚至有LuaJIT这种神器加持,但其本身很难做到Python这样,一是因为有Py……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明