美文网首页
判断机器学习算法的性能

判断机器学习算法的性能

作者: Waldo_cuit | 来源:发表于2018-03-10 11:42 被阅读0次

将总数据集分为训练数据集和测试数据集


image.png

复习Fancy Indexing中的通过索引取出元素

image.png

train_test_split

image.png
image.png
image.png
image.png

封装model_selection

import numpy as np


def train_test_split(X, y, test_ratio=0.2, seed=None):
    """将数据 X 和 y 按照test_ratio分割成X_train, X_test, y_train, y_test"""
    assert X.shape[0] == y.shape[0], \
        "the size of X must be equal to the size of y"
    assert 0.0 <= test_ratio <= 1.0, \
        "test_ration must be valid"

    if seed:
        np.random.seed(seed)

    shuffled_indexes = np.random.permutation(len(X))

    test_size = int(len(X) * test_ratio)
    test_indexes = shuffled_indexes[:test_size]
    train_indexes = shuffled_indexes[test_size:]

    X_train = X[train_indexes]
    y_train = y[train_indexes]

    X_test = X[test_indexes]
    y_test = y[test_indexes]

    return X_train, X_test, y_train, y_test
image.png

通过自己写的kNN算法得出模型准确率

import numpy as np
from math import sqrt
from collections import Counter


class KNNClassifier:

    def __init__(self, k):
        """初始化kNN分类器"""
        assert k >= 1, "k must be valid"
        self.k = k
        self._X_train = None
        self._y_train = None

    def fit(self, X_train, y_train):
        """根据训练数据集X_train和y_train训练kNN分类器"""
        assert X_train.shape[0] == y_train.shape[0], \
            "the size of X_train must be equal to the size of y_train"
        assert self.k <= X_train.shape[0], \
            "the size of X_train must be at least k."

        self._X_train = X_train
        self._y_train = y_train
        return self

    def predict(self, X_predict):
        """给定待预测数据集X_predict,返回表示X_predict的结果向量"""
        assert self._X_train is not None and self._y_train is not None, \
                "must fit before predict!"
        assert X_predict.shape[1] == self._X_train.shape[1], \
                "the feature number of X_predict must be equal to X_train"

        y_predict = [self._predict(x) for x in X_predict]
        return np.array(y_predict)

    def _predict(self, x):
        """给定单个待预测数据x,返回x的预测结果值"""
        assert x.shape[0] == self._X_train.shape[1], \
            "the feature number of x must be equal to X_train"

        distances = [sqrt(np.sum((x_train - x) ** 2))
                     for x_train in self._X_train]
        nearest = np.argsort(distances)

        topK_y = [self._y_train[i] for i in nearest[:self.k]]
        votes = Counter(topK_y)

        return votes.most_common(1)[0][0]

    def __repr__(self):
        return "KNN(k=%d)" % self.k
image.png

sklearn中的train_test_split

image.png

相关文章

  • 判断机器学习算法的性能

    将总数据集分为训练数据集和测试数据集 复习Fancy Indexing中的通过索引取出元素 train_test_...

  • 4.3训练数据集、测试数据集

    4.3训练数据集、测试数据集 1.判断机器学习算法的性能 测试我们的算法 train_test_split 将原始...

  • 为你的回归问题选择最佳的机器学习算法

    摘要:机器学习领域算法那么多?到底如何用?本文作者通过比较不同机器学习算法性能的优劣来为回归问题寻找最佳的算法选择...

  • 算法的复杂度计算

    前面学习了LMS,RLMS,AP等算法,前面也有提及如何定量判断算法的性能,现在让我们来定量判断算法复杂度,其实就...

  • Spark机器学习笔记

    Spark机器学习笔记 机器学习 机器学习是数据通过算法构建出模型并对模型进行评估,评估的性能如果达到要求就拿这个...

  • 机器学习算法的性能评估

    本文介绍机器学习算法的性能评估的方法,包括算法高偏差还是高方差的诊断,学习曲线等。从工程应用的角度来讲,算法只需要...

  • 4.分类算法(scikit-learn 的 perceptron

    应用机器学习分类算法的五个步骤 选择特征 选择一个性能指标 选择一个分类器和一个优化算法 评价模型的性能 优化算法...

  • 课程导学-Python与机器学习

    机器学习的目标 机器学习是实现人工智能的手段,其主要研究内容是如何利用数据或经验进行学习,改善具体算法的性能 多领...

  • python机器学习一

    1.机器学习的目标 机器学习是实现人工智能的手段,其主要研究内容是如何利用数据或经验进行学习,改善具体算法的性能 ...

  • 机器学习概述

    机器学习是实现人工智能的手段,其主要研究内容弄是如何利用数据或经验进行学习,改善算法的性能。 机器学习的分类监督学...

网友评论

      本文标题:判断机器学习算法的性能

      本文链接:https://www.haomeiwen.com/subject/qfyvfftx.html