zoukankan      html  css  js  c++  java
  • sklearn之reshape(-1,1)

    scikit-learn,又称sklearn,是一个开源的基于python语言的机器学习工具包。它通过NumPy, SciPy和Matplotlib等python数值计算的库实现高效的算法应用,并且涵盖了大多数主流机器学习算法。
     
    sklearn官网链接讲解了所有算法的实现和简单应用:http://scikit-learn.org/stable/index.html 
     
    在工程应用中,用python手写代码来从头实现一个算法的可能性非常低,这样不仅耗时耗力,还不一定能够写出构架清晰,稳定性强的模型。更多情况下,是分析采集到的数据,根据数据特征选择适合的算法,在工具包中调用算法,调整算法的参数,获取需要的信息,从而实现算法效率和效果之间的平衡。而sklearn,正是这样一个可以帮助我们高效实现算法应用的工具包。
     
     
    在用sklearn进行模型预测时发现了几次同样的报错:
    ValueError: Expected 2D array, got 1D array instead:
    array=XXXXX
    Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
     
    这是因为在新版sklearn中,所有数据都应该是二维矩阵,哪怕它只是单独一行或一列,需要使用.reshape(1,-1)进行转换,示例如下。
    import sklearn.svm as svm
    import numpy as np 
    X = [[0, 0], [1, 1]] 
    y = [0.5, 1.5] 
    clf = svm.SVR() 
    clf.fit(X, y) 
    result = clf.predict(np.array([0.5, 0.5]).reshape(1, -1))
    print result
     
    其实还有更简洁的写法,多加一个[]即可:result = clf.predict([[0.5, 0.5]])
     
    很多时候都是不经意间写成了.predict([X, Y...])造成了报错。
     
     
  • 相关阅读:
    JVM Ecosystem Report 2020
    TiDB 简介
    Docker镜像分层打包方案
    Promethues + Grafana + AlertManager使用总结
    Spring Boot自动注入原理
    Spring Boot 2.x 自定义Endpoint
    Oracle 等待事件 Enq: CF
    1000行MySQL学习笔记
    PostgreSQL DBA常用SQL查询语句
    MongoDB DBA常用的NoSQL语句
  • 原文地址:https://www.cnblogs.com/myshuzhimei/p/11776614.html
Copyright © 2011-2022 走看看