机器学习入门数据集--1.鸢尾花

作者: ac619467fef3 | 来源:发表于2019-02-08 22:28 被阅读76次

    机器学习入门数据集

    1. 鸢尾花
    2. 手写数字识别
    3. 波士顿房价预测
    4. 泰坦尼克幸存者预测
    5. 糖尿病人数据预测
    6. 信用卡诈骗

    鸢尾花预测

    数据前5行.png

    数据分析

    • 逻辑回归进行数据拟合。通过查看数据样式,鸢尾花的分类标签是012三类,target传入LogisticRegression.fit中是会自动dummy(哑编码、one-hot编码)。
      预测准确率为96%。
    from sklearn.linear_model import LogisticRegression
    from sklearn.datasets import load_iris
    import numpy as np
    iris = load_iris()
    print("鸢尾花数据集格式{},标签格式{}".format(iris.data.shape,iris.target.shape))
    print("前5行鸢尾花数据:\n{}".format(iris.data[0:5]))
    print("鸢尾花种类:{}".format(np.unique(iris.target)))
    lr = LogisticRegression()
    lr.fit(iris.data,iris.target)
    print(lr.score(iris.data,iris.target))
    

    输出结果:

    鸢尾花数据集格式(150, 4),标签格式(150,)
    前5行鸢尾花数据
    [[5.1 3.5 1.4 0.2]
     [4.9 3.  1.4 0.2]
     [4.7 3.2 1.3 0.2]
     [4.6 3.1 1.5 0.2]
     [5.  3.6 1.4 0.2]]
    鸢尾花种类:[0 1 2]
    0.96
    
    • 按回归问题处理鸢尾花分类问题,标签按012按float类型处理。
    from sklearn.linear_model import LinearRegression
    lr = LinearRegression()
    lr.fit(iris.data,iris.target)
    print(lr.score(iris.data,iris.target))
    

    结果,比逻辑回归略差。

    0.9304223675331597
    

    降维

    将鸢尾花的4维标签,压缩成3维。采用PCA方式降维。

    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    from sklearn import datasets
    from sklearn.decomposition import PCA
    # # import some data to play with
    iris = datasets.load_iris()
    y = iris.target
    
    # To getter a better understanding of interaction of the dimensions
    # plot the first three PCA dimensions
    fig = plt.figure(1, figsize=(8, 6))
    ax = Axes3D(fig)
    X_reduced = PCA(n_components=3).fit_transform(iris.data)
    ax.scatter(X_reduced[:, 0], X_reduced[:, 1], X_reduced[:, 2], c=y)
    ax.set_title("First three PCA directions")
    ax.set_xlabel("1st eigenvector")
    ax.w_xaxis.set_ticklabels([])
    ax.set_ylabel("2nd eigenvector")
    ax.w_yaxis.set_ticklabels([])
    ax.set_zlabel("3rd eigenvector")
    ax.w_zaxis.set_ticklabels([])
    plt.show()
    
    PCA

    KNN模型处理鸢尾花

    通过观察降维之后的结果,鸢尾花数据在空间上可分,可用KNN算范对鸢尾花进行预测。

    knn = KNeighborsClassifier(n_neighbors=5)
    knn.fit(iris.data, iris.target)
    print("KNN 算法准确度{}".format(knn.score(iris.data,iris.target)))
    
    0.966
    

    特征扩展

    特征扩展有多种方式,其中二项式扩展方式为x_1^2 ,x_1x_2,x_1x_3等方式。

    特征选择

    • RFE方式选择
    • 决策树方式选择
    • R2回归方式选择

    相关文章

      网友评论

        本文标题:机器学习入门数据集--1.鸢尾花

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