sklearn 的基本机器学习(分类方法)

1.

KNN原理:

存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中最相似数据(最近邻)的分类标签。一般来说,只选择样本数据集中前个最相似的数据,这就是KNN算法 的出处, 通常 是不大于20的整数。最后,选择 个最相似数据中出现次数最多的分类,作为新数据的分类。


代码:


   
   
  1. #-*-coding:utf-8 -*-
  2. from sklearn import datasets
  3. #导入内置数据集模块
  4. from sklearn.neighbors import KNeighborsClassifier
  5. #导入sklearn.neighbors模块中KNN类
  6. import numpy as np
  7. iris=datasets.load_iris()
  8. #导入鸢尾花的数据集,iris是一个数据集,内部有样本数据
  9. iris_x=iris.data
  10. iris_y=iris.target
  11. indices = np.random.permutation(len(iris_x))
  12. #permutation接收一个数作为参数(150),产生一个0-149一维数组,只不过是随机打乱的
  13. iris_x_train = iris_x[indices[: -10]]
  14. #随机选取140个样本作为训练数据集
  15. iris_y_train = iris_y[indices[: -10]]
  16. # 并且选取这140个样本的标签作为训练数据集的标签
  17. iris_x_test = iris_x[indices[ -10:]]
  18. # 剩下的10个样本作为测试数据集
  19. iris_y_test = iris_y[indices[ -10:]]
  20. # 并且把剩下10个样本对应标签作为测试数据及的标签
  21. knn = KNeighborsClassifier()
  22. # 定义一个knn分类器对象
  23. knn.fit(iris_x_train, iris_y_train)
  24. # 调用该对象的训练方法,主要接收两个参数:训练数据集及其样本标签
  25. iris_y_predict = knn.predict(iris_x_test)
  26. # 调用该对象的测试方法,主要接收一个参数:测试数据集
  27. score = knn.score(iris_x_test, iris_y_test, sample_weight= None)
  28. # 调用该对象的打分方法,计算出准确率
  29. print( ‘iris_y_predict = ‘)
  30. print(iris_y_predict)
  31. # 输出测试的结果
  32. print( ‘iris_y_test = ‘)
  33. print(iris_y_test)
  34. # 输出原始测试数据集的正确标签,以方便对比
  35. print ‘Accuracy:’, score
  36. # 输出准确率计算结果

2.

SVM原理:

SVM既可以用来分类,就是SVC;又可以用来预测,或者成为回归,就是SVR


代码:


   
   
  1. from sklearn import svm
  2. X = [[ 0, 0], [ 1, 1], [ 1, 0]] # 训练样本
  3. y = [ 0, 1, 1] # 训练目标
  4. clf = svm.SVC()
  5. clf.fit(X, y) # 训练SVC模型
  6. result = clf.predict([ 2, 2]) # 预测 测试样本
  7. print result # 得出预测值

此外补充一个训练模型的加载与保存:


   
   
  1. # 将训练好的模型保存到train_model.m中
  2. joblib.dump(clf, "train_model.m")
  3. # 模型的加载
  4. clf = joblib. load( "train_model.m")
3.

集成方法 随机森林原理:

集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。随机森林是集成学习的一个子类.

代码:


   
   
  1. #coding=utf-8
  2. from sklearn import datasets
  3. from sklearn.ensemble import RandomForestClassifier
  4. #应用iris数据集
  5. import numpy as np
  6. iris=datasets.load_iris()
  7. #导入鸢尾花的数据集,iris是一个数据集,内部有样本数据
  8. iris_x=iris.data
  9. iris_y=iris.target
  10. indices = np.random.permutation(len(iris_x))
  11. #permutation接收一个数作为参数(150),产生一个0-149一维数组,只不过是随机打乱的
  12. x_train = iris_x[indices[: -10]]
  13. #随机选取140个样本作为训练数据集
  14. y_train = iris_y[indices[: -10]]
  15. # 并且选取这140个样本的标签作为训练数据集的标签
  16. x_test = iris_x[indices[ -10:]]
  17. # 剩下的10个样本作为测试数据集
  18. y_test = iris_y[indices[ -10:]]
  19. # 并且把剩下10个样本对应标签作为测试数据及的标签
  20. #分类器:自由森林
  21. clfs = { 'random_forest' : RandomForestClassifier(n_estimators= 50)}
  22. #构建分类器,训练样本,预测得分
  23. def try_different_method(clf):
  24. clf.fit(x_train,y_train.ravel())
  25. score = clf.score(x_test,y_test.ravel())
  26. print( 'the score is :', score)
  27. for clf_key in clfs.keys():
  28. print( 'the classifier is :',clf_key)
  29. clf = clfs[clf_key]
  30. try_different_method(clf)



            </div>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值