美文网首页
动手实践Scikit-learn(sklearn)

动手实践Scikit-learn(sklearn)

作者: iOSDevLog | 来源:发表于2018-11-07 10:06 被阅读43次

    嗨伙计们,欢迎回来,非常感谢你的爱和支持,我希望你们都做得很好。在今天的版本中,我们将学习被称为sklearn的scikit-learn。

    在这个博客中,我们将了解如何从动手角度使用这个库,我也将博客放在分段部分,这将帮助我们以更全面的格式学习sklearn,这将有助于你甚至记住。博客实际上将作为学习者的备忘单,流程包括为我们提供加载数据,预处理数据,学习如何训练和测试数据,使用有监督和无监督学习创建模型的学习,学习如何使模型适合预测并最终了解我们如何评估模型的性能。

    image.png

    scikit learn,它是一个用于Python编程语言的免费软件机器学习。它具有各种分类回归聚类算法,包括支持向量机随机森林梯度增强k均值DBSCAN,旨在与Python数值和科学库NumPySciPy互操作。(维基百科

    它从哪里来的?

    Scikit-learn最初是由David Cournapeau在2007年开发的Google夏季代码项目。

    后来Matthieu Brucher加入了这个项目并开始将其作为论文工作的一部分。2010年,INRIA参与其中,第一次公开发布(v0.1 beta)于2010年1月下旬发布。

    该项目目前有30多名活跃的贡献者,并已获得INRIA,Google,TinycluesPython软件基金会的赞助

    image.png

    使用sklearn库之前需要先决条件

    该库基于SciPy(Scientific Python)构建,必须先安装才能使用scikit-learn。这个堆栈包括:

    · NumPy:基本n维数组包

    · SciPy:科学计算的基础库

    · Matplotlib:全面的2D / 3D绘图

    · IPython:增强的交互式控制台

    · Sympy:符号数学

    · Pandas:数据结构和分析

    现在,让我们深入了解如何在各自的场景中使用。

    image.png

    开始加载数据

    您的数据需要是数字并存储为NumPy数组或SciPy稀疏矩阵。其他可转换为数字数组的类型(如Pandas DataFrame)也是可以接受的。

    >>> import numpy as np
    
    >>> X = np.random.random((10,5))
    
    >>> y = np.array(['M','M','F','F','M','F','M','M','F','F','F'])
    

    预处理数据

    标准化

    >>> from sklearn.preprocessing import StandardScaler
    
    >>> scaler = StandardScaler().fit(X_train)
    
    >>> standardized_X = scaler.transform(X_train)
    
    >>> standardized_X_test = scaler.transform(X_test)
    

    正则化

    >>> from sklearn.preprocessing import Normalizer
    
    >>> scaler = Normalizer().fit(X_train)
    
    >>> normalized_X = scaler.transform(X_train)
    
    >>> normalized_X_test = scaler.transform(X_test)
    

    二值化

    >>> from sklearn.preprocessing import Binarizer
    
    >>> binarizer = Binarizer(threshold=0.0).fit(X)
    
    >>> binary_X = binarizer.transform(X)
    

    编码分类功能

    >>> from sklearn.preprocessing import LabelEncoder
    
    >>> enc = LabelEncoder()
    
    >>> y = enc.fit_transform(y)
    

    输入缺失值

    >>>from sklearn.preprocessing import Imputer
    
    >>>imp = Imputer(missing_values=0, strategy='mean', axis=0)
    
    >>>imp.fit_transform(X_train)
    

    生成多项式特征

    >>> from sklearn.preprocessing import PolynomialFeatures
    
    >>> poly = PolynomialFeatures(5)
    
    >>> oly.fit_transform(X)
    

    训练和测试数据

    >>> from sklearn.model_selection import train_test_split
    
    >>> X_train, X_test, y_train, y_test = train_test_split(X,y,random_state=0)
    

    创建你的模型

    监督学习估算

    线性回归

    >>> from sklearn.linear_model import LinearRegression
    
    >>> lr = LinearRegression(normalize=True)
    

    支持向量机(SVM)

    >>> from sklearn.svm import SVC
    
    >>> svc = SVC(kernel='linear')
    

    朴素贝叶斯

    >>> from sklearn.naive_bayes import GaussianNB
    
    >>> gnb = GaussianNB()
    

    KNN

    >>> from sklearn import neighbors
    
    >>> knn = neighbors.KNeighborsClassifier(n_neighbors=5)
    

    无监督学习估计器

    主成分分析(PCA)

    >>> from sklearn.decomposition import PCA
    
    >>> pca = PCA(n_components=0.95)
    

    K均值

    >>> from sklearn.cluster import KMeans
    
    >>> k_means = KMeans(n_clusters=3, random_state=0)
    

    模型拟合

    监督学习

    >>> lr.fit(X, y)
    
    >>> knn.fit(X_train, y_train)
    
    >>> svc.fit(X_train, y_train)
    

    无监督学习

    >>> k_means.fit(X_train)
    
    >>> pca_model = pca.fit_transform(X_train)
    

    预测

    监督预测

    >>> y_pred = svc.predict(np.random.random((2,5)))
    
    >>> y_pred = lr.predict(X_test)
    
    >>> y_pred = knn.predict_proba(X_test))
    

    无监督估计

    >>> y_pred = k_means.predict(X_test)
    

    评估您的模型的性能

    分类指标

    准确度分数

    >>> knn.score(X_test, y_test)
    
    >>> from sklearn.metrics import accuracy_score
    
    >>> accuracy_score(y_test, y_pred)
    

    分类报告

    >>> from sklearn.metrics import classification_report
    
    >>> print(classification_report(y_test, y_pred)))
    

    混淆矩阵

    >>> from sklearn.metrics import confusion_matrix
    
    >>> print(confusion_matrix(y_test, y_pred)))
    

    回归指标

    平均绝对误差

    >>> from sklearn.metrics import mean_absolute_error
    
    >>> y_true = [3, -0.5, 2])
    
    >>> mean_absolute_error(y_true, y_pred))
    

    均方误差

    >>> from sklearn.metrics import mean_squared_error
    
    >>> mean_squared_error(y_test, y_pred))
    

    决定系数 r2

    >>> from sklearn.metrics import r2_score
    
    >>> r2_score(y_true, y_pred))
    

    群集指标

    调整兰德系数

    >>> from sklearn.metrics import adjusted_rand_score
    
    >>> adjusted_rand_score(y_true, y_pred))
    

    同质性

    >>> from sklearn.metrics import homogeneity_score
    
    >>> homogeneity_score(y_true, y_pred))
    

    调和平均V-measure

    >>> from sklearn.metrics import v_measure_score
    
    >>> metrics.v_measure_score(y_true, y_pred))
    

    交叉验证

    >>> print(cross_val_score(knn, X_train, y_train, cv=4))
    
    >>> print(cross_val_score(lr, X, y, cv=2))
    

    Sckit-learn算法备忘单

    scikit-learn.png

    我希望上面收集的内容是知识渊博的,并且会给你一个关于这个主题的一瞥,在这个说明中,我想今天签字。请关注我以获取有关MediumLinkedIn上所有博客的更新。如果你真的喜欢上面的东西,那么通过敲打下面的Claps按钮来表达你的爱,因为学习没有限制。

    谢谢你阅读......

    原文:https://towardsdatascience.com/hands-on-introduction-to-scikit-learn-sklearn-f3df652ff8f2
    作者:Madhav Mishra

    相关文章

      网友评论

          本文标题:动手实践Scikit-learn(sklearn)

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