精华内容
参与话题
问答
  • sklearn python API

    2018-09-29 23:23:00
    sklearn python API LinearRegression from sklearn.linear_model import LinearRegression # 线性回归 # module = LinearRegression() module.fit(x, y) module.score(x, y) module.predict(test) Logistic...

    sklearn python API

    • LinearRegression
    from sklearn.linear_model import LinearRegression         # 线性回归 #
    module = LinearRegression()
    module.fit(x, y)
    module.score(x, y)
    module.predict(test)

    • LogisticRegression
    from sklearn.linear_model import LogisticRegression         # 逻辑回归 #
    module = LogisticRegression()
    module.fit(x, y)
    module.score(x, y)
    module.predict(test)

    • KNN
    from sklearn.neighbors import KNeighborsClassifier     #K近邻#
    from sklearn.neighbors import www.tianjiuyule178.com KNeighborsRegressor
    module = KNeighborsClassifier(www.tygj178.com  n_neighbors=6)
    module.fit(x, y)
    predicted = module.predict(test)
    predicted = module.predict_proba(test)

    • SVM
    from sklearn import svm                                #支持向量机#
    module = svm.SVC()
    module.fit(x, y)
    module.score(x, y)
    module.predict(test)
    module.predict_proba(test)

    • naive_bayes
    from sklearn.naive_bayes import GaussianNB            #朴素贝叶斯分类器#
    module = GaussianNB(www.dashuju178.com)
    module.fit(x, y)
    predicted = module.predict(test)

    • DecisionTree
    from sklearn import tree                              #决策树分类器#
    module = tree.DecisionTreeClassifier(criterion='gini')
    module.fit(x, y)
    module.score(x, y)
    module.predict(test)

    • K-Means
    from sklearn.cluster import KMeans                    #kmeans聚类#
    module = KMeans(n_clusters=3, random_state=0)
    module.fit(x, y)
    module.predict(test)

    • RandomForest
    from sklearn.ensemble import RandomForestClassifier  #随机森林#
    from sklearn.ensemble import RandomForestRegressor
    module = RandomForestClassifier()
    module.fit(x, y)
    module.predict(test)

    • GBDT
    from sklearn.ensemble import GradientBoostingClassifier      www.hyptdl.com #Gradient Boosting 和 AdaBoost算法#
    from sklearn.ensemble import www.fengshen157.com GradientBoostingRegressor
    module = GradientBoostingClassifier(n_estimators=100, www.yundingyuLe.cn learning_rate=0.1, max_depth=1, random_state=0)
    module.fit(x, y)
    module.predict(test)

    • PCA
    from sklearn.decomposition import PCA              #PCA特征降维#
    train_reduced = PCA.fit_transform(train)
    test_reduced = PCA.transform(test)
    展开全文
  • SVM sklearn python实现小示例

    万次阅读 2017-11-18 17:32:22
    SVM sklearn python实习小示例示例说明本示例是一个简单的试验,甚至连数据集都不用额外准备,旨在加深对SVM和核函数的理解,并看看如何利用 scikit-learn 中的svm, 编译环境是 jupyter notebook, 可以通过安装 ...

    示例说明

    本示例是一个简单的试验,甚至连数据集都不用额外准备,旨在加深对SVM和核函数的理解,并看看如何利用 scikit-learn 中的svm,
    编译环境是 jupyter notebook, 可以通过安装 Anaconda,导入 scikit-learn 库可以很容易实现,github示例代码。本例中变没有用外部数据集,而是随机生成的点,大家在理解算法和 scikit-learn 熟练使用后,可以尝试导入有具体意义的数据集,看看SVM的效果。

    概述

    SVM_demo_with_sklearn.ipynb代码中主要分为两个部分

    • 线性 SVM 分类器
    • SVM 与核函数

    Section 1: 线性 SVM 分类器

    首先导入依赖包

    %matplotlib inline
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn; 
    from sklearn.linear_model import LinearRegression
    from scipy import stats
    import pylab as pl
    seaborn.set()
    

    支持向量机是解决分类和回归问题非常强大的有监督学习算法。简单说来,linear的SVM做的事情就是在不同类别的“数据团”之间划上一条线,对线性可分集,总能找到使样本正确划分的分界面,而且有无穷多个,哪个是最优? 必须寻找一种最优的分界准则,SVM试图找到一条最健壮的线,什么叫做最健壮的线?其实就是离2类样本点最远的线。

    from sklearn.datasets.samples_generator import make_blobs
    X, y = make_blobs(n_samples=50, centers=2,
                      random_state=0, cluster_std=0.60)
    
    xfit = np.linspace(-1, 3.5)
    plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')
    
    # 其实随意给定3组参数,就可以画出3条不同的直线,但它们都可以把图上的2类样本点分隔开
    for m, b, d in [(1, 0.65, 0.33), (0.5, 1.6, 0.55), (-0.2, 2.9, 0.2)]:
        yfit = m * xfit + b
        plt.plot(xfit, yfit, '-k')
        plt.fill_between(xfit, yfit - d, yfit + d, edgecolor='none', color='#AAAAAA', alpha=0.4)
    
    plt.xlim(-1, 3.5);
    
    svm1.png
    from sklearn.svm import SVC
    clf = SVC(kernel='linear')
    clf.fit(X, y)
    
    def plot_svc_decision_function(clf, ax=None):
        """Plot the decision function for a 2D SVC"""
        if ax is None:
            ax = plt.gca()
        x = np.linspace(plt.xlim()[0], plt.xlim()[1], 30)
        y = np.linspace(plt.ylim()[0], plt.ylim()[1], 30)
        Y, X = np.meshgrid(y, x)
        P = np.zeros_like(X)
        for i, xi in enumerate(x):
            for j, yj in enumerate(y):
                P[i, j] = clf.decision_function([xi, yj])
        # plot the margins
        ax.contour(X, Y, P, colors='k',
                   levels=[-1, 0, 1], alpha=0.5,
                   linestyles=['--', '-', '--'])
    
    
    • 分隔超平面:上述将数据集分割开来的直线叫做分隔超平面。
    • 超平面:如果数据集是N维的,那么就需要N-1维的某对象来对数据进行分割。该对象叫做超平面,也就是分类的决策边界。
    • 间隔:一个点到分割面的距离,称为点相对于分割面的距离。数据集中所有的点到分割面的最小间隔的2倍,称为分类器或数据集的间隔。
    • 最大间隔:SVM分类器是要找最大的数据集间隔。
    • 支持向量:离分割超平面最近的那些点

    sklearn的SVM里面会有一个属性support_vectors_,标示“支持向量”,也就是样本点里离超平面最近的点,组成的。
    咱们来画个图,把超平面和支持向量都画出来。

    plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')
    plot_svc_decision_function(clf)
    plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],
                s=200, facecolors='none');
    
    svm2.png

    可以用IPython的 interact 函数来看看样本点的分布,会怎么样影响超平面:

    from IPython.html.widgets import interact
    
    def plot_svm(N=100):
        X, y = make_blobs(n_samples=200, centers=2,
                          random_state=0, cluster_std=0.60)
        X = X[:N]
        y = y[:N]
        clf = SVC(kernel='linear')
        clf.fit(X, y)
        plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')
        plt.xlim(-1, 4)
        plt.ylim(-1, 6)
        plot_svc_decision_function(clf, plt.gca())
        plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],
                    s=200, facecolors='none')
        
    interact(plot_svm, N=[10, 200], kernel='linear');
    
    svm3.png

    Section 2: SVM 与 核函数

    对于非线性可切分的数据集,要做分割,就要借助于核函数了简单一点说呢,核函数可以看做对原始特征的一个映射函数,
    不过SVM不会傻乎乎对原始样本点做映射,它有更巧妙的方式来保证这个过程的高效性。
    下面有一个例子,你可以看到,线性的kernel(线性的SVM)对于这种非线性可切分的数据集,是无能为力的。

    from sklearn.datasets.samples_generator import make_circles
    X, y = make_circles(100, factor=.1, noise=.1)
    
    clf = SVC(kernel='linear').fit(X, y)
    
    plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')
    plot_svc_decision_function(clf);
    
    svm4.png

    然后强大的高斯核/radial basis function就可以大显身手了:

    r = np.exp(-(X[:, 0] ** 2 + X[:, 1] ** 2))
    
    from mpl_toolkits import mplot3d
    
    def plot_3D(elev=30, azim=30):
        ax = plt.subplot(projection='3d')
        ax.scatter3D(X[:, 0], X[:, 1], r, c=y, s=50, cmap='spring')
        ax.view_init(elev=elev, azim=azim)
        ax.set_xlabel('x')
        ax.set_ylabel('y')
        ax.set_zlabel('r')
    
    interact(plot_3D, elev=[-90, 90], azip=(-180, 180));
    
    svm5.png

    你在上面的图上也可以看到,原本在2维空间无法切分的2类点,映射到3维空间以后,可以由一个平面轻松地切开了。
    而带rbf核的SVM就能帮你做到这一点:

    clf = SVC(kernel='rbf')
    clf.fit(X, y)
    
    plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')
    plot_svc_decision_function(clf)
    plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],
                s=200, facecolors='none');
    
    svm6.png

    关于SVM的总结:

    • 非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射;
    • 对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心;
    • 支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量。因此,模型需要存储空间小,算法鲁棒性强;
    • 无任何前提假设,不涉及概率测度;
    • SVM算法对大规模训练样本难以实施
    • 用SVM解决多分类问题存在困难,经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组合来解决。主要有一对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器的组合来解决。主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度。如:与粗集理论结合,形成一种优势互补的多类问题的组合分类器。
    • SVM是O(n^3)的时间复杂度。在sklearn里,LinearSVC是可扩展的(也就是对海量数据也可以支持得不错), 对特别大的数据集SVC就略微有点尴尬了。不过对于特别大的数据集,你倒是可以试试采样一些样本出来,然后用rbf核的SVC来做做分类。

    依赖的 packages

    • matplotlib
    • pylab
    • numpy
    • seaborn

    others

    展开全文
  • python sklearn PCA 实例-主成分分析

    千次阅读 2019-08-21 11:17:22
    python sklearn decomposition PCA 主成分分析 主成分分析(PCA) 1、主成分分析(Principal Component Analysis,PCA)是最常用的一种降维方法, 通常用于高维数据集的探索与可视化,还可以用作数据压缩和预处理 2、...

    python sklearn decomposition PCA 主成分分析

    主成分分析(PCA)

    1、主成分分析(Principal Component Analysis,PCA)是最常用的一种降维方法,
    通常用于高维数据集的探索与可视化,还可以用作数据压缩和预处理

    2、PCA可以把具有相关性的高维变量合成为线性无关的低维变量,称为主成分。
    主成分能够尽可能保留原始数据的信息

    3、概念
    方差:用来度量一组数据的分散程度
    协方差:用来度量两个变量之间的线性相关性程度,若两个变量的协议差为0,二者线性无关
    协方差矩阵:矩阵的特征向量是描述数据集结构的非零向量,?? ⃗=?? ⃗
    特征向量和特征值:? ⃗ 特征向量,?是特征值

    4、提取:
    矩阵的主成分是其协方差矩阵对应的特征向量,按照对应的特征值大小进行排序,最大的特征值就是第一主成分,其次是第二主成分

    5、原理:
    1、对所有样本进行中心化:xi-(x1+x2…xm)/m
    2、计算样本的协方差矩阵X(X.T)
    3、对协方差矩阵X(X.T)做特征值分解
    4、取最大的d个特征值所对应的特征向量w1,w2…wd
    输出投影矩阵W=(w1,w2,…,wd)

    6、参数说明
    sklearn.decomposition.PCA(n_components=None,copy=True,whithen=False,svd_solver=‘auto’,tol=0.0,
    iterated_power=‘auto’,random_state=None)
    n_components:指定主成分的个数,即降维后数据的维度
    svd_slover:设置特征值分解的方法:‘full’,‘arpack’,‘randomized’

    PCA实现高维度数据可视化 实例
    目标:
    已知鸢尾花数据是4维的,共三类样本,使用PCA实现对鸢尾花数据进行降维,实现在二维平面上的可视化

    实例程序编写

    import matplotlib.pyplot as plt
    import sklearn.decomposition as dp
    from sklearn.datasets.base import load_iris
    
    x,y=load_iris(return_X_y=True) #加载数据,x表示数据集中的属性数据,y表示数据标签
    pca=dp.PCA(n_components=2) #加载pca算法,设置降维后主成分数目为2
    reduced_x=pca.fit_transform(x) #对原始数据进行降维,保存在reduced_x中
    red_x,red_y=[],[]
    blue_x,blue_y=[],[]
    green_x,green_y=[],[]
    for i in range(len(reduced_x)): #按鸢尾花的类别将降维后的数据点保存在不同的表表中
        if y[i]==0:
            red_x.append(reduced_x[i][0])
            red_y.append(reduced_x[i][1])
        elif y[i]==1:
            blue_x.append(reduced_x[i][0])
            blue_y.append(reduced_x[i][1])
        else:
            green_x.append(reduced_x[i][0])
            green_y.append(reduced_x[i][1])
    plt.scatter(red_x,red_y,c='r',marker='x')
    plt.scatter(blue_x,blue_y,c='b',marker='D')
    plt.scatter(green_x,green_y,c='g',marker='.')
    plt.show()
    
    展开全文
  • sklearn

    千次阅读 2019-04-07 22:45:15
    1、sklearn.datasets.load_*() 获取小规模数据集,数据集包含在datasets里 ex_1: sklearn.datasets.load_iris()返回鸢尾花的数据集 2、sklearn.datasets.fetch_*(data_home=None,subset='train/test/all') 获取大...

    1、sklearn.datasets.load_*()
    获取小规模数据集,数据集包含在datasets里
    ex_1:
    sklearn.datasets.load_iris()返回鸢尾花的数据集
    2、sklearn.datasets.fetch_*(data_home=None,subset='train/test/all')
    获取大规模数据集,需要从网络上下载,传入的函数的第一个参数是data_home,表示数据集下载的目录,默认是~/scikit_learn_data/,第二个参数表示想要的数据集是训练集还是测试集,还是都要
    3、数据集的返回值
    load和fetch返回的是datasets.base.Bunch(继承自字典)
    五个键:
    data:数据集中的特值
    target:数据集中的目标值
    DESCR:数据集的描述
    feature_names:特征的名字
    target_names:目标值代表什么

    	dict["key"] = values
        bunch.key = values
    

    ex_2:

    from sklearn.datasets import load_iris
    
    def datasets_demo():
    
    	'''
    	sklearn数据集的使用
    	'''
    	iris = load_iris()
    	print("鸢尾花数据集:\n", iris)
    
    

    4、数据集划分
    训练数据:用于训练,构建模型
    划分比例:数据集20%~30%
    数据集划分api

    from sklearn.model_selection import train_test_split(arrays, *options)
    

    x 数据集的特征值
    y 数据集的标签值
    test_size 测试集大小,一般为float,默认0.25
    random_state 随机数种子
    return 训练集特征值,测试集特征值,训练集目标值,测试集目标值

    ex_3:

    def datasets_demo():
        iris = load_iris()
        # print("鸢尾花数据集:\n", iris)
        # print("鸢尾花数据集描述:\n", iris["DESCR"])
        print("源数据:", iris.data.shape)
        # 数据集划分
        x_train,x_test,y_train,y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
        print("训练集特征值:", x_train,x_train.shape)
        return None
    
    展开全文
  • Sklearn安装

    千次阅读 2017-11-22 08:42:12
    安装sklearn
  • python安装sklearn模块

    万次阅读 多人点赞 2018-03-16 16:56:06
    转载自:... 第一步:更新pip python -m pip install –upgrade pip 第二步:安装 scipy 在网址http://www.lfd.uci.edu/~gohlke/pythonlibs/ 中找到你需要的版本scipy ...
  • sklearn-python机器学习算法汇总,对常用的机器学习算法进行了实现,使用mnist数据进行实验对比,程序运行过,没有问题
  • sklearn.svm.SVC 参数说明 经常用到sklearn中的SVC函数,这里把文档中的参数翻译了一些,以备不时之需。 本身这个函数也是基于libsvm实现的,所以在参数设置上有很多相似的地方。(PS: libsvm中的二次规划问题的...
  • 深入理解机器学习并完全看懂sklearn文档,需要较深厚的理论基础。但是,要将sklearn应用于实际的项目中,只需要对机器学习理论有一个基本的掌握,就可以直接调用其API来完成各种机器学习问题。 本文选自《全栈数据...
  • sklearn+python:逻辑回归

    千次阅读 2018-07-17 01:09:00
    概述 逻辑回归是一种分类算法,并不是线性回归的子类 sklearn:使用逻辑回归诊断乳腺癌 使用sklearn自带的乳腺癌数据,逻辑回归用来诊断是阴性还是阳性。...from sklearn.model_selection im...
  • sklearn+python:线性回归

    千次阅读 2018-07-16 16:58:58
    载入的数据是随sklearn一起发布的,来自boston 1993年之前收集的506个房屋的数据和价格。load_boston()用于载入数据。 from sklearn.datasets import load_boston from sklearn.model_selection import train_...
  • 一、Sklearn介绍scikit-learn是Python语言开发的机器学习库,一般简称为sklearn,目前算是通用机器学习算法库中实现得比较完善的库了。其完善之处不仅在于实现的算法多,还包括大量详尽的文档和示例。其文档写得通俗...
  • PythonSklearn使用教程

    万次阅读 多人点赞 2018-04-15 19:49:27
    1.Sklearn简介 Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。当...
  • sklearn+python:朴素贝叶斯及文本分类

    千次阅读 2018-09-09 15:41:43
    朴素贝叶斯 贝叶斯定理用来计算条件概率,即: 然后进行一种朴素(naive)的假设-每对特征之间都相互独立: 在给定的输入中 P(x_1, \dots, x_n) 是一个常量,我们使用下面的分类规则: ...可以使用最大后验概率...
  • 支持向量机SVM:使用sklearn+python

    千次阅读 2018-07-12 10:40:25
    代码 ... 这个例子主要是演示3种不同的核函数(线性核,高斯核和多项式核)的用法。 使用的数据是自动生成的,生成数据的接口是make_blobs。 ...from sklearn import svm...from sklearn.datasets import make_blobs fr...
  • 今天小编就为大家分享一篇K最近邻算法(KNN)---sklearn+python实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 下载地址:https://www.python.org/ftp/python/2.7.5/python-2.7.5.amd64.msi  (可以支持最新的sklearn) 安装:直接执行 测试:在cmd下,执行python 是否进入命令行模式(是则正确,否则出错,需要配置环境变量)...
  • 线性回归---sklearn+python实现

    千次阅读 2018-05-25 11:53:46
    简单线性回归问题思想回到正题,对于简单线性回归有如下问题:下面通过程序来实现简单的线性回归:import numpy as np import matplotlib.pyplot as plt x=np.array([1,2,3,4,5]) y=np.array([1,3,2,3,5]) ...
  • (1)from sklearn.cross_validation import train_test_split (2)from sklearn.model_selection import cross_val_score from sklearn.model_selection import train_test_split 通常我们会使用方法(1)的...
  • sklearn+python:无监督学习之k_means

    千次阅读 2018-07-15 15:52:22
    K均值简介 K均值是一种无监督学习算法,在没有标签的训练样本中学习到聚类的中心点,后续测试数据可以计算和聚类中心的距离,归类到距离最近的聚类中心上。 随机初始化 只要K的值比样本少,可以随机选择K个样本...
  • K最近邻算法(KNN)---sklearn+python实现

    万次阅读 多人点赞 2018-05-23 16:50:10
    k-近邻算法概述简单地说,k近邻算法采用测量不同特征值之间的距离方法进行分类。k-近邻算法优点:精度高、对异常值不敏感、无数据输入假定。缺点:计算复杂度高、空间复杂度高。 适用数据范围:数值型和标称型。...

空空如也

1 2 3 4 5 ... 20
收藏数 40,549
精华内容 16,219
关键字:

sklearn