繁体   English   中英

如何使用决策边界分离散点图?

[英]How to separate scatter plots using decision boundary?

我目前正在研究这个与 2010 年至 2019 年 Spotify 上热门歌曲相关的数据集,我正在使用逻辑回归来研究歌曲的语音(依赖)与持续时间和效价之间的关系(独立) )。 我在尝试将歌曲的语音数值转换为用于分类的二进制值时遇到了麻烦,因为我正在使用逻辑回归。 此外,我不知道如何将散点图与决策边界分开。 如果有人能帮助我解决这个问题,我将不胜感激。

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt 
import pandas as pd
from sklearn.linear_model import LogisticRegression 

df = pd.read_csv('top10s [SubtitleTools.com] (2).csv')

def LogReg0732():
    Dur = df.dur
    Dur = np.array(Dur)
    Dance = df.dnce
    BPM = df.bpm
    BPM = np.array(BPM)
    Energy = df.nrgy
    Energy = np.array(Energy)
    dB = df.dB
    dB = np.array(dB)
    Live = df.live
    Live = np.array(Live)
    Valence = df.val
    Valence = np.array(Valence)
    Acous = df.acous
    Acous = np.array(Acous)
    Speech = df.spch
    Dance = np.array(Dance)
    Pop = df.popu
    Pop = np.array(Pop)

    Speech = (Speech < 8).astype(int) 

    Speech = np.array(Speech)

    X = Dur

    X = np.stack((X, Valence))

    y = Speech

    clf = LogisticRegression().fit(X.T, y)
    print("Coef ", clf.intercept_, clf.coef_)
    xx, yy = np.mgrid[np.min(Dur):np.max(Dur), np.min(Valence):np.max(Valence)]
    gridxy = np.c_[xx.ravel(), yy.ravel()]
    probs = clf.predict_proba(gridxy)[:,1].reshape(xx.shape)
    f, ax = plt.subplots(figsize=(10,8))
    contour = ax.contourf(xx, yy, probs, 25, cmap="BrBG", vmin=0, vmax=1)
    ax_c = f.colorbar(contour)
    ax_c.set_ticks([0, 1/4, 1/2, 3/4, 1])
    idx = np.where(y==1); idx = np.reshape(idx,np.shape(idx)[1])
    y1 = X[:,idx]
    idx = np.where(y==0); idx = np.reshape(idx,np.shape(idx)[1])
    y0 = X[:,idx]
    ax.scatter(y1[0,:], y1[1,:], c='green')
    ax.scatter(y0[0,:], y0[1,:], c='blue')
    plt.xlabel('Duration')
    plt.ylabel('Valence')
    plt.savefig('LR1.svg')
    plt.show()

LogReg0732()

我现在的图表

我想要实现的图形类型

我的数据集

您的图表看起来不像您希望的那样的原因是因为您使用的回归算法无法将“语音”分类为这个或那个、真或假、一或零。 你的代码没问题。 虽然您的图表看起来不像您希望的那样,但它看起来确实是应该的——图表是数据的准确表示。 数据不能很好地解析为类别的原因是因为类别首先不在数据中。

我认为您可能需要重新考虑最初的前提。 “Speechiness”,如果它有什么的话,似乎是一个数值。 如果是数值,那么你的问题是回归问题,而不是分类问题。

我对“言语”几乎一无所知,但快速谷歌表明,就物质现实的可衡量组成部分而言,它与长度、宽度和高度并不完全相同。 我会担心“言语”可能比眼睛少,而且不太可能是值得科学研究的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM