标签分类 热门分类
当前位置:首页 > > 机器学习电子书网盘下载
scikit-learn机器学习:常用算法原理及编程实战 scikit-learn机器学习:常用算法原理及编程实战
shaolun1992

shaolun1992 提供上传

资源
20
粉丝
41
喜欢
330
评论
12

    scikit-learn机器学习:常用算法原理及编程实战 PDF 原书超清版

    机器学习电子书
    • 发布时间:

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

  • scikit-learn机器学习:常用算法原理及编程实战 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1oNota1L5DjEknb-3e_1H9
  • 分享码:w5s2
  • scikit-learn机器学习

    scikit-learn机器学习电子书封面

    读者评价

    书还错,通俗易懂的结合实例讲解了很多库函数的使用,最令我感兴趣的就是P118的那段话:人生价值的实现,在于消费资源(增熵过程)来获取能量,经过自己的劳动付出,让世界变得更加纯净有序(减熵过程),信息增益(减熵量-增熵量)即是衡量人生价值的尺度。理工男要有理工男的文艺!

    机器学习程序入门,通俗容易入门

    这本书正好满足了这两个特点:用深入浅出的讲解帮助初学者学习理论知识;用大量有益的实例带领读者实践,并检验学习效果。无论是机器学习的入门人员,还是有一定基础的进阶者,均能从本书中有所获益

    前,人工智能是一个热门话题,这使得驱动其发展的机器学习和深度学习等技术也变得炙手可热。而学习这些技术的门槛不低,有相当难度。可喜的是,本书将这个门槛大大地降低了,读者不会一上来就被一大堆数学公式和推导过程折磨,非常值得一读。

    介绍了在Python环境下学习scikit-learn机器学习框架的相关知识,涵盖的主要内容有机器学习概述、Python机器学习软件包、机器学习理论基础、k-近邻算法等算法

    内容介绍

    本书通过通俗易懂的语言、丰富的图示和生动的实例,拨开了笼罩在机器学习上方复杂的数学“乌云”,让读者以较低的代价和门槛入门机器学习。

    本书共分为11章,介绍了在Python环境下学习scikit-learn机器学习框架的相关知识,涵盖的主要内容有机器学习概述、Python机器学习软件包、机器学习理论基础、k-近邻算法、线性回归算法、逻辑回归算法、决策树、支持向量机、朴素贝叶斯算法、PCA算法和k-均值算法等。

    本书适合有一定编程基础的读者阅读,尤其适合想从事机器学习、人工智能、深度学习及机器人相关技术的程序员和爱好者阅读。另外,相关院校和培训机构也可以将本书作为教材使用。

    内容节选

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

     

    你好,%用户名%!

    我叫Alex,我在机器学习和网络图分析(主要是理论)有所涉猎。我同时在为一家俄罗斯移动运营商开发大数据产品。这是我第一次在网上写文章,不喜勿喷。

    现在,很多人想开发高效的算法以及参加机器学习的竞赛。所以他们过来问我:”该如何开始?”。一段时间以前,我在一个俄罗斯联邦政府的下属机构中领导了媒体和社交网络大数据分析工具的开发。我仍然有一些我团队使用过的文档,我乐意与你们分享。前提是读者已经有很好的数学和机器学习方面的知识(我的团队主要由MIPT(莫斯科物理与技术大学)和数据分析学院的毕业生构成)。

    这篇文章是对数据科学的简介,这门学科最近太火了。机器学习的竞赛也越来越多(如,Kaggle, TudedIT),而且他们的资金通常很可观。

    R和Python是提供给数据科学家的最常用的两种工具。每一个工具都有其优缺点,但Python最近在各个方面都有所胜出(仅为鄙人愚见,虽然我两者都用)。这一切的发生是因为Scikit-Learn库的腾空出世,它包含有完善的文档和丰富的机器学习算法。
    请注意,我们将主要在这篇文章中探讨机器学习算法。通常用Pandas包去进行主数据分析会比较好,而且这很容易你自己完成。所以,让我们集中精力在实现上。为了确定性,我们假设有一个特征-对象矩阵作为输入,被存在一个*.csv文件中。

    数据加载

    首先,数据要被加载到内存中,才能对其操作。Scikit-Learn库在它的实现用使用了NumPy数组,所以我们将用NumPy来加载*.csv文件。让我们从UCI Machine Learning Repository下载其中一个数据集。

    import numpy as np
    import urllib
    # url with dataset
    url = “http://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data”
    # download the file
    raw_data = urllib.urlopen(url)
    # load the CSV file as a numpy matrix
    dataset = np.loadtxt(raw_data, delimiter=“,”)
    # separate the data from the target attributes
    X = dataset[:,0:7]
    y = dataset[:,8]

    我们将在下面所有的例子里使用这个数据组,换言之,使用X特征物数组和y目标变量的值。

    数据标准化

    我们都知道大多数的梯度方法(几乎所有的机器学习算法都基于此)对于数据的缩放很敏感。因此,在运行算法之前,我们应该进行标准化,或所谓的规格化。标准化包括替换所有特征的名义值,让它们每一个的值在0和1之间。而对于规格化,它包括数据的预处理,使得每个特征的值有0和1的离差。Scikit-Learn库已经为其提供了相应的函数。

    from sklearn
    import metrics
    from sklearn.ensemble
    import ExtraTreesClassifier
    model = ExtraTreesClassifier()
    model.fit(X, y)# display the relative importance of each attribute
    print(model.feature_importances_)

    特征的选取

    毫无疑问,解决一个问题最重要的是是恰当选取特征、甚至创造特征的能力。这叫做特征选取和特征工程。虽然特征工程是一个相当有创造性的过程,有时候更多的是靠直觉和专业的知识,但对于特征的选取,已经有很多的算法可供直接使用。如树算法就可以计算特征的信息量。

    from sklearn
    import metrics
    from sklearn.ensemble
    import ExtraTreesClassifier
    model = ExtraTreesClassifier()
    model.fit(X, y)# display the relative importance of each attribute
    print(model.feature_importances_)

    其他所有的方法都是基于对特征子集的高效搜索,从而找到最好的子集,意味着演化了的模型在这个子集上有最好的质量。递归特征消除算法(RFE)是这些搜索算法的其中之一,Scikit-Learn库同样也有提供。

    from sklearn.feature_selection
    import RFE
    from sklearn.linear_model
    import LogisticRegression
    model = LogisticRegression()# create the RFE model and select 3 attributes
    rfe = RFE(model, 3)
    rfe = rfe.fit(X, y)# summarize the selection of the attributes
    print(rfe.support_)
    print(rfe.ranking_)

    算法的开发

    正像我说的,Scikit-Learn库已经实现了所有基本机器学习的算法。让我来瞧一瞧它们中的一些。

    逻辑回归

    大多数情况下被用来解决分类问题(二元分类),但多类的分类(所谓的一对多方法)也适用。这个算法的优点是对于每一个输出的对象都有一个对应类别的概率。

    from sklearn
    import metrics
    from sklearn.linear_model
    import LogisticRegression
    model = LogisticRegression()
    model.fit(X, y)
    print(model)# make predictions
    expected = y
    predicted = model.predict(X)# summarize the fit of the model
    print(metrics.classification_report(expected, predicted))
    print(metrics.confusion_matrix(expected, predicted))

    朴素贝叶斯

    它也是最有名的机器学习的算法之一,它的主要任务是恢复训练样本的数据分布密度。这个方法通常在多类的分类问题上表现的很好。

    from sklearn
    import metrics
    from sklearn.naive_bayes
    import GaussianNB
    model = GaussianNB()
    model.fit(X, y)
    print(model)# make predictions
    expected = y
    predicted = model.predict(X)# summarize the fit of the model
    print(metrics.classification_report(expected, predicted))
    print(metrics.confusion_matrix(expected, predicted))

    k-最近邻

    kNN(k-最近邻)方法通常用于一个更复杂分类算法的一部分。例如,我们可以用它的估计值做为一个对象的特征。有时候,一个简单的kNN

    from sklearn
    import metrics
    from sklearn.neighbors
    import KNeighborsClassifier# fit a k - nearest neighbor model to the data
    model = KNeighborsClassifier()
    model.fit(X, y)
    print(model)# make predictions
    expected = y
    predicted = model.predict(X)# summarize the fit of the model
    print(metrics.classification_report(expected, predicted))
    print(metrics.confusion_matrix(expected, predicted))

    决策树

    分类和回归树(CART)经常被用于这么一类问题,在这类问题中对象有可分类的特征且被用于回归和分类问题。决策树很适用于多类分类。

    from sklearn
    import metrics
    from sklearn.tree
    import DecisionTreeClassifier# fit a CART model to the data
    model = DecisionTreeClassifier()
    model.fit(X, y)
    print(model)# make predictions
    expected = y
    predicted = model.predict(X)# summarize the fit of the model
    print(metrics.classification_report(expected, predicted))
    print(metrics.confusion_matrix(expected, predicted))

    支持向量机

    SVM(支持向量机)是最流行的机器学习算法之一,它主要用于分类问题。同样也用于逻辑回归,SVM在一对多方法的帮助下可以实现多类分类。

    from sklearn import metrics
    from sklearn.svm import SVC
    # fit a SVM model to the data
    model = SVC()
    model.fit(X, y)
    print(model)
    # make predictions
    expected = y
    predicted = model.predict(X)
    # summarize the fit of the model
    print(metrics.classification_report(expected, predicted))
    print(metrics.confusion_matrix(expected, predicted))

    除了分类和回归问题,Scikit-Learn还有海量的更复杂的算法,包括了聚类, 以及建立混合算法的实现技术,如Bagging和Boosting。

    如何优化算法的参数

    在编写高效的算法的过程中最难的步骤之一就是正确参数的选择。一般来说如果有经验的话会容易些,但无论如何,我们都得寻找。幸运的是Scikit-Learn提供了很多函数来帮助解决这个问题。

    作为一个例子,我们来看一下规则化参数的选择,在其中不少数值被相继搜索了:

    import numpy as np
    from sklearn.linear_model
    import Ridge
    from sklearn.grid_search
    import GridSearchCV# prepare a range of alpha values to test
    alphas = np.array([1, 0.1, 0.01, 0.001, 0.0001, 0])# create and fit a ridge regression model, testing each alpha
    model = Ridge()
    grid = GridSearchCV(estimator = model, param_grid = dict(alpha = alphas))
    grid.fit(X, y)
    print(grid)# summarize the results of the grid search
    print(grid.best_score_)
    print(grid.best_estimator_.alpha)

    有时候随机地从既定的范围内选取一个参数更为高效,估计在这个参数下算法的质量,然后选出最好的。

    import numpy as np
    from scipy.stats
    import uniform as sp_rand
    from sklearn.linear_model
    import Ridge
    from sklearn.grid_search
    import RandomizedSearchCV# prepare a uniform distribution to sample
    for the alpha parameter
    param_grid = {‘
      alpha': sp_rand()
    }#
    create and fit a ridge regression model, testing random alpha values
    model = Ridge()
    rsearch = RandomizedSearchCV(estimator = model, param_distributions = param_grid, n_iter = 100)
    rsearch.fit(X, y)
    print(rsearch)# summarize the results of the random parameter search
    print(rsearch.best_score_)
    print(rsearch.best_estimator_.alpha)

    至此我们已经看了整个使用Scikit-Learn库的过程,除了将结果再输出到一个文件中。这个就作为你的一个练习吧,和R相比Python的一大优点就是它有很棒的文档说明。

    目录

    • 前言
    • 第1章  机器学习介绍       1
    • 1.1  什么是机器学习   1
    • 1.2  机器学习有什么用      2
    • 1.3  机器学习的分类   3
    • 1.4  机器学习应用开发的典型步骤   4
    • 1.4.1  数据采集和标记       4
    • 1.4.2  数据清洗   5
    • 1.4.3  特征选择   5
    • 1.4.4  模型选择   5
    • 1.4.5  模型训练和测试       5
    • 1.4.6  模型性能评估和优化       5
    • 1.4.7  模型使用   6
    • 1.5  复习题   6
    • 第2章  Python机器学习软件包       7
    • 2.1  开发环境搭建      7
    • 2.2  IPython简介 8
    • 2.2.1  IPython基础     8
    • 2.2.2  IPython图形界面     13
    • 2.3  Numpy简介  15
    • 2.3.1  Numpy数组      15
    • 2.3.2  Numpy运算      19
    • 2.4  Pandas简介   32
    • 2.4.1  基本数据结构   32
    • 2.4.2  数据排序   34
    • 2.4.3  数据访问   34
    • 2.4.4  时间序列   36
    • 2.4.5  数据可视化       36
    • 2.4.6  文件读写   38
    • 2.5  Matplotlib简介     38
    • 2.5.1  图形样式   38
    • 2.5.2  图形对象   40
    • 2.5.3  画图操作   46
    • 2.6  scikit-learn简介    51
    • 2.6.1  scikit-learn示例 51
    • 2.6.2  scikit-learn一般性原理和通用规则 55
    • 2.7  复习题   56
    • 2.8  拓展学习资源      57
    • 第3章  机器学习理论基础       58
    • 3.1  过拟合和欠拟合   58
    • 3.2  成本函数      59
    • 3.3  模型准确性   60
    • 3.3.1  模型性能的不同表述方式       61
    • 3.3.2  交叉验证数据集       61
    • 3.4  学习曲线      62
    • 3.4.1  实例:画出学习曲线       62
    • 3.4.2  过拟合和欠拟合的特征   65
    • 3.5  算法模型性能优化      65
    • 3.6  查准率和召回率   66
    • 3.7  F1 Score       67
    • 3.8  复习题   67
    • 第4章  k-近邻算法    69
    • 4.1  算法原理      69
    • 4.1.1  算法优缺点       69
    • 4.1.2  算法参数   70
    • 4.1.3  算法的变种       70
    • 4.2  示例:使用k-近邻算法进行分类      70
    • 4.3  示例:使用k-近邻算法进行回归拟合      72
    • 4.4  实例:糖尿病预测      74
    • 4.4.1  加载数据   74
    • 4.4.2  模型比较   75
    • 4.4.3  模型训练及分析       77
    • 4.4.4  特征选择及数据可视化   78
    • 4.5  拓展阅读      80
    • 4.5.1  如何提高k-近邻算法的运算效率   80
    • 4.5.2  相关性测试       80
    • 4.6  复习题   81
    • 第5章  线性回归算法       83
    • 5.1  算法原理      83
    • 5.1.1  预测函数   83
    • 5.1.2  成本函数   84
    • 5.1.3  梯度下降算法   84
    • 5.2  多变量线性回归算法   86
    • 5.2.1  预测函数   86
    • 5.2.2  成本函数   87
    • 5.2.3  梯度下降算法   88
    • 5.3  模型优化      89
    • 5.3.1  多项式与线性回归   89
    • 5.3.2  数据归一化       89
    • 5.4  示例:使用线性回归算法拟合正弦函数   90
    • 5.5  示例:测算房价   92
    • 5.5.1  输入特征   92
    • 5.5.2  模型训练   93
    • 5.5.3  模型优化   94
    • 5.5.4  学习曲线   95
    • 5.6  拓展阅读      96
    • 5.6.1  梯度下降迭代公式推导   96
    • 5.6.2  随机梯度下降算法   96
    • 5.6.3  标准方程   97
    • 5.7  复习题   97
    • 第6章  逻辑回归算法       98
    • 6.1  算法原理      98
    • 6.1.1  预测函数   98
    • 6.1.2  判定边界   99
    • 6.1.3  成本函数   100
    • 6.1.4  梯度下降算法   102
    • 6.2  多元分类      102
    • 6.3  正则化   103
    • 6.3.1  线性回归模型正则化       103
    • 6.3.2  逻辑回归模型正则化       104
    • 6.4  算法参数      104
    • 6.5  实例:乳腺癌检测      106
    • 6.5.1  数据采集及特征提取       106
    • 6.5.2  模型训练   108
    • 6.5.3  模型优化   110
    • 6.5.4  学习曲线   111
    • 6.6  拓展阅读      113
    • 6.7  复习题   114
    • 第7章  决策树    115
    • 7.1  算法原理      115
    • 7.1.1  信息增益   116
    • 7.1.2  决策树的创建   119
    • 7.1.3  剪枝算法   120
    • 7.2  算法参数      121
    • 7.3  实例:预测泰坦尼克号幸存者   122
    • 7.3.1  数据分析   122
    • 7.3.2  模型训练   123
    • 7.3.3  优化模型参数   124
    • 7.3.4  模型参数选择工具包       127
    • 7.4  拓展阅读      130
    • 7.4.1  熵和条件熵       130
    • 7.4.2  决策树的构建算法   130
    • 7.5  集合算法      131
    • 7.5.1  自助聚合算法Bagging     131
    • 7.5.2  正向激励算法boosting     131
    • 7.5.3  随机森林   132
    • 7.5.4  ExtraTrees算法 133
    • 7.6  复习题   133
    • 第8章  支持向量机    134
    • 8.1  算法原理      134
    • 8.1.1  大间距分类算法       134
    • 8.1.2  松弛系数   136
    • 8.2  核函数   138
    • 8.2.1  最简单的核函数       138
    • 8.2.2  相似性函数       140
    • 8.2.3  常用的核函数   141
    • 8.2.4  核函数的对比   142
    • 8.3  scikit-learn里的SVM  144
    • 8.4  实例:乳腺癌检测      146
    • 8.5  复习题   149
    • 第9章  朴素贝叶斯算法    151
    • 9.1  算法原理      151
    • 9.1.1  贝叶斯定理       151
    • 9.1.2  朴素贝叶斯分类法   152
    • 9.2  一个简单的例子   153
    • 9.3  概率分布      154
    • 9.3.1  概率统计的基本概念       154
    • 9.3.2  多项式分布       155
    • 9.3.3  高斯分布   158
    • 9.4  连续值的处理      159
    • 9.5  实例:文档分类   160
    • 9.5.1  获取数据集       160
    • 9.5.2  文档的数学表达       161
    • 9.5.3  模型训练   163
    • 9.5.4  模型评价   165
    • 9.6  复习题   167
    • 第10章  PCA算法     168
    • 10.1  算法原理    168
    • 10.1.1  数据归一化和缩放  169
    • 10.1.2  计算协方差矩阵的特征向量  169
    • 10.1.3  数据降维和恢复     170
    • 10.2  PCA 算法示例   171
    • 10.2.1  使用Numpy模拟PCA计算过程  171
    • 10.2.2  使用sklearn进行PCA降维运算   173
    • 10.2.3  PCA的物理含义     174
    • 10.3  PCA 的数据还原率及应用       175
    • 10.3.1  数据还原率     175
    • 10.3.2  加快监督机器学习算法的运算速度     176
    • 10.4  实例:人脸识别 176
    • 10.4.1  加载数据集     176
    • 10.4.2  一次失败的尝试     179
    • 10.4.3  使用PCA来处理数据集       182
    • 10.4.4  最终结果  185
    • 10.5  拓展阅读    189
    • 10.6  复习题 189
    • 第11章  k-均值算法   190
    • 11.1  算法原理     190
    • 11.1.1  k-均值算法成本函数      191
    • 11.1.2  随机初始化聚类中心点  191
    • 11.1.3  选择聚类的个数     192
    • 11.2  scikit-learn里的k-均值算法     192
    • 11.3  使用k-均值对文档进行聚类分析    195
    • 11.3.1  准备数据集     195
    • 11.3.2  加载数据集     196
    • 11.3.3  文本聚类分析  197
    • 11.4  聚类算法性能评估     200
    • 11.4.1  Adjust Rand Index   200
    • 11.4.2  齐次性和完整性     201
    • 11.4.3  轮廓系数  203
    • 11.5  复习题 204
    • 后记       205

    上一篇:Python机器学习经典实例  下一篇:深入浅出Python机器学习

    展开 +

    收起 -

    机器学习 相关电子书
    关于机器学习的学习笔记
    网友NO.820030

    Python与Scikit-Learn的机器学习探索详解

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

    网友NO.805867

    python机器学习库scikit-learn:SVR的基本应用

    scikit-learn是python的第三方机器学习库,里面集成了大量机器学习的常用方法。例如:贝叶斯,svm,knn等。 scikit-learn的官网 : http://scikit-learn.org/stable/index.html点击打开链接 SVR是支持向量回归(support vector regression)的英文缩写,是支持向量机(SVM)的重要的应用分支。 scikit-learn中提供了基于libsvm的SVR解决方案。 PS:libsvm是台湾大学林智仁教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包。 我们自己随机产生一些值,然后使用sin函数进行映射,使用SVR对数据进行拟合 from __future__ import divisionimport timeimport numpy as npfrom sklearn.svm import SVRfrom sklearn.model_selection import GridSearchCVfrom sklearn.model_selection import learning_curveimport matplotlib.pyplot as plt rng = np.random.RandomState(0) ############################################################################## 生成随机数据X = 5 * rng.rand(10000, 1)y = np.sin(X).ravel() # 在标签中对每50个结果标签添加噪声 y[::50] += 2 * (0.5 - rng.rand(int(X.shape[0]/50))) X_plot = np.linspace(0, 5, 100000)[:, None] ############################################################################## 训练SVR模型 #训练规模train_size = 100#初始化SVRsvr = GridSearchCV(SVR(kernel='rbf', gamma=0.1), cv=5, param_grid={"C": [1e0, 1e1, 1e2, 1e3], "gamma": np.logspace(-2, 2, 5)})#记录训练时间t0 = time.time()#训练svr.fit(……

    网友NO.210344

    python机器学习理论与实战(一)K近邻法

    机器学习分两大类,有监督学习(supervised learning)和无监督学习(unsupervised learning)。有监督学习又可分两类:分类(classification.)和回归(regression),分类的任务就是把一个样本划为某个已知类别,每个样本的类别信息在训练时需要给定,比如人脸识别、行为识别、目标检测等都属于分类。回归的任务则是预测一个数值,比如给定房屋市场的数据(面积,位置等样本信息)来预测房价走势。而无监督学习也可以成两类:聚类(clustering)和密度估计(density estimation),聚类则是把一堆数据聚成弱干组,没有类别信息;密度估计则是估计一堆数据的统计参数信息来描述数据,比如深度学习的RBM。 根据机器学习实战讲解顺序,先学习K近邻法(K Nearest Neighbors-KNN) K近邻法是有监督学习方法,原理很简单,假设我们有一堆分好类的样本数据,分好类表示每个样本都一个对应的已知类标签,当来一个测试样本要我们判断它的类别是,就分别计算到每个样本的距离,然后选取离测试样本最近的前K个样本的标签累计投票,得票数最多的那个标签就为测试样本的标签。 例子(电影分类): (图一) (图一)中横坐标表示一部电影中的打斗统计个数,纵坐标表示接吻次数。我们要对(图一)中的问号这部电影进行分类,其他几部电影的统计数……

    网友NO.468280

    机器学习python实战之手写数字识别

    看了上一篇内容之后,相信对K近邻算法有了一个清晰的认识,今天的内容——手写数字识别是对上一篇内容的延续,这里也是为了自己能更熟练的掌握k-NN算法。 我们有大约2000个训练样本和1000个左右测试样本,训练样本所在的文件夹是trainingDigits,测试样本所在的文件夹是testDigits。文本文件中是0~9的数字,但是是用二值图表示出来的,如图。我们要做的就是使用训练样本训练模型,并用测试样本来检测模型的性能。 首先,我们需要将文本文件中的内容转化为向量,因为图片大小是32*32,所以我们可以将其转化为1*1024的向量。具体代码实现如下: def img2vector(filename): imgVec = zeros((1,1024)) file = open(filename) for i in range(32): lines = file.readline() for j in range(32): imgVec[0,32*i+j] = lines[j] return imgVec 实现了图片到向量的转化之后,我们就可以对测试文件中的内容进行识别了。这里的识别我们可以使用上一篇中的自定义函数classify0,这个函数的第一个参数是测试向量,第二个参数是训练数据集,第三个参数是训练集的标签。所以,我们首先需要将训练数据集转化为(1934*1024)的矩阵,1934这里是训练集的组数即trainingDigits目录下的文件数,其对应的标签转化为(1*1934)的向量。之后要编写的代码就是对测试数据集中的每个文本文件进行识别,也……

    网友NO.42162
    网友NO.42162

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

    网友NO.28496
    网友NO.28496

    Sklearn包含的常用算法里介绍过常用的算法,scikit-learn中学习模式的调用,有很强的统一性,很多都是类似的,学会一个,其他基本差不多。以day2简单线性回归为例
    from sklearn.linear_model importLinearRegression #导入模型
    regressor = LinearRegression() #建立模型
    regressor = regressor.fit(X_train, Y_train) #训练模型
    regressor.predict(X_test) #预测

    Copyright 2018-2020 xz577.com 码农之家

    电子书资源由网友、会员提供上传,本站记录提供者的基本信息及资源来路

    鸣谢: “ 码小辫 ” 公众号提供回调API服务、“ 脚本CDN ”提供网站加速(本站寻求更多赞助支持)

    版权投诉 / 书籍推广 / 赞助:520161757@qq.com

    上传资源(网友、会员均可提供)

    查看最新会员资料及资源信息