Coder Social home page Coder Social logo

machine-learning-in-action-python3's Introduction

Machine-Learning-in-Action-Python3

本人是西安电子科技大学的一名研二在读学生,在学习机器学习的过程中拜读了王斌老师翻译的《机器学习实战》一书,书中对算法的原理以及编程实现进行了详细的介绍。

机器学习实战一书中的代码是基于python2的,故对书中的代码重新做了整理,全部代码可在python3环境下运行。

所有源程序中,文件夹名称的命名规则为:算法名称+对应书中的第几个案例,少数几个案例因为数据量比较大所以采用压缩包上传。

如果代码有任何问题欢迎与我联系,联系方式:[email protected]

版本更新记录

  • 2019/2/9 在kNN_Project1文件夹下更新了鸢尾花多分类任务的sklearn包实现,文件命名为Chap_1.py
  • 2020/8/2 NeuralNetwork_Project1的代码是对《Python神经网络编程》这本书中代码的整理

machine-learning-in-action-python3's People

Contributors

wzy6642 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

machine-learning-in-action-python3's Issues

BUG: Machine-Learning-in-Action-Python3/CART_Project3/CART.py

Machine-Learning-in-Action-Python3/CART_Project3/CART.py
第285行
errorNoMerge = np.sum(np.power(lSet[:, -1] - tree['left'], 2)) + np.sum(np.power(rSet[:, 1] - tree['right'], 2))
中的后半部分rSet的索引似乎应该是[:, -1]。应修改为:
errorNoMerge = np.sum(np.power(lSet[:, -1] - tree['left'], 2)) + np.sum(np.power(rSet[:, -1] - tree['right'], 2))

🐛 Bayes_Project2/Bayes.py 拆分词袋有错误

🐛 正则匹配并不能匹配到正确的词
♐ 这样可以,不知再有没有更好的解决方式

def textParse(bigString):
    # 用特殊符号作为切分标志进行字符串切分,即非字母、非数字
    # \W* 0个或多个非字母数字或下划线字符(等价于[^a-zA-Z0-9_])
    bigString=bigString.split()
    listOfTockens=[]
    for i in range(len(bigString)):
        listOfTockens.append(str("".join(list(filter(str.isalpha, bigString[i])))))
    # 除了单个字母,例如大写I,其他单词变成小写,去掉少于两个字符的字符串
    return [tok.lower() for tok in listOfTockens if len(tok) > 2]

PCA_Project2里面

def replaceNaNWithMean():
里面应该是这个⑧
meanVal = np.mean(datMat[np.nonzero(~np.isnan(datMat[:, i].A))[0], i])

注释有点问题

Bayes_Project1/Bayes.py中 第106行 numWords应该是模型中总词条数目或者说用户词典中的总词条数目吧?

DecisionTree_Project2/DecisionTree.py 方法classify 使用有误

530行里 调用classify方法,给定的第二项输入应该是完整的数据labels,且顺序和数据集顺序应该一致

同时优化了classify方法的写法 更加直观

def classify(inputTree, featLabels, testVec):
    # 获取决策树结点
    # 当前树节点的key首项 表明选择的特征类型
    keyLabel = list(inputTree.keys())[0]
    # 对应类型的特征树
    currDict = inputTree[keyLabel]

    # 获取特征类型在特征中的index
    featIndex = featLabels.index(keyLabel)
    # 获取当前的特征叶子 或者是 特征树
    judgeValue = currDict.get(testVec[featIndex])

    # 如果是树就继续向下走 如果是叶子输出
    if type(judgeValue).__name__ == 'dict':
        return classify(judgeValue, featLabels, testVec)
    else:
        return judgeValue

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.