小编Dat*_*ted的帖子

准确度分数ValueError:无法处理二进制和连续目标的混合

我使用linear_model.LinearRegressionscikit-learn作为预测模型.它的工作原理很完美.我有一个问题是使用accuracy_score指标评估预测结果.这是我的真实数据:

array([1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0])
Run Code Online (Sandbox Code Playgroud)

我的预测数据:

array([ 0.07094605,  0.1994941 ,  0.19270157,  0.13379635,  0.04654469,
    0.09212494,  0.19952108,  0.12884365,  0.15685076, -0.01274453,
    0.32167554,  0.32167554, -0.10023553,  0.09819648, -0.06755516,
    0.25390082,  0.17248324])
Run Code Online (Sandbox Code Playgroud)

我的代码:

accuracy_score(y_true, y_pred, normalize=False)
Run Code Online (Sandbox Code Playgroud)

错误信息:

ValueError:无法处理二进制和连续目标的混合

救命 ?谢谢.

python machine-learning prediction linear-regression scikit-learn

48
推荐指数
6
解决办法
7万
查看次数

重新取样错误:无法使用方法或限制重新索引非唯一索引

我正在使用Pandas来构建和处理数据.

我这里有一个DataFrame,日期为索引,Id和比特率.我希望按ID分组我的数据并同时重新采样,相对于每个Id的时间,最后保持比特率.

例如,给定:

df = pd.DataFrame(
{'Id' : ['CODI126640013.ts', 'CODI126622312.ts'],
'beginning_time':['2016-07-08 02:17:42', '2016-07-08 02:05:35'], 
'end_time' :['2016-07-08 02:17:55', '2016-07-08 02:26:11'],
'bitrate': ['3750000', '3750000'],
'type' : ['vod', 'catchup'],
'unique_id' : ['f2514f6b-ce7e-4e1a-8f6a-3ac5d524be30', 'f2514f6b-ce7e-4e1a-8f6a-3ac5d524bb22']})
Run Code Online (Sandbox Code Playgroud)

这使 :

在此输入图像描述

这是我的代码,每次ID和比特率时都会获得一个唯一的日期列:

df = df.drop(['type', 'unique_id'], axis=1)
df.beginning_time = pd.to_datetime(df.beginning_time)
df.end_time = pd.to_datetime(df.end_time)
df = pd.melt(df, id_vars=['Id','bitrate'], value_name='dates').drop('variable', axis=1)
df.set_index('dates', inplace=True)
Run Code Online (Sandbox Code Playgroud)

这使 :

在此输入图像描述

现在,重新抽样的时间!这是我的代码:

print (df.groupby('Id').resample('1S').ffill())
Run Code Online (Sandbox Code Playgroud)

这就是结果:

在此输入图像描述

这正是我想要做的!我有38279个具有相同列的日志,当我做同样的事情时,我有一条错误消息.第一部分完美运作,并给出了:

在此输入图像描述

部分(df.groupby('Id').resample('1S').ffill())给出了以下错误消息:

ValueError: cannot reindex a non-unique index with a method or limit
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?Thnx!

python group-by resampling python-2.7 pandas

7
推荐指数
1
解决办法
9063
查看次数

从DatetimeIndex到时间列表

我的目标是有一个时间列表(以秒为单位),已经在一整天的5分钟内列入时间列表.这是我的代码,将"2016-07-08"的整天打包5分钟:

pd.date_range('2016-07-08 00:00:00', '2016-07-08 23:59:00', freq='5Min')
Run Code Online (Sandbox Code Playgroud)

结果 :

DatetimeIndex(['2016-07-08 00:00:00', '2016-07-08 00:05:00',
           '2016-07-08 00:10:00', '2016-07-08 00:15:00',
           '2016-07-08 00:20:00', '2016-07-08 00:25:00',
           '2016-07-08 00:30:00', '2016-07-08 00:35:00',
           '2016-07-08 00:40:00', '2016-07-08 00:45:00',
           ...
           '2016-07-08 23:10:00', '2016-07-08 23:15:00',
           '2016-07-08 23:20:00', '2016-07-08 23:25:00',
           '2016-07-08 23:30:00', '2016-07-08 23:35:00',
           '2016-07-08 23:40:00', '2016-07-08 23:45:00',
           '2016-07-08 23:50:00', '2016-07-08 23:55:00'],
          dtype='datetime64[ns]', length=288, freq='5T')
Run Code Online (Sandbox Code Playgroud)

这是每5分钟包含所有时间(按秒)的代码:

for time in pd.date_range('2016-07-08 00:00:00', '2016-07-08 23:59:00', freq='5Min').tolist():    
    time_by_5_min = datetime.datetime.strftime(time.to_datetime(), "%Y-%m-%d %H:%M:%S")
    print pd.date_range(time_by_5_min, freq='S', periods=60)
Run Code Online (Sandbox Code Playgroud)

结果 :

DatetimeIndex(['2016-07-08 00:00:00', '2016-07-08 00:00:01',
           '2016-07-08 00:00:02', '2016-07-08 00:00:03', …
Run Code Online (Sandbox Code Playgroud)

python datetime list pandas datetimeindex

6
推荐指数
2
解决办法
5441
查看次数

Qcut Pandas:ValueError:Bin 边缘必须是唯一的

我使用 Pandas 的 Qcut 将数据离散化为大小相等的存储桶。我想要有价格桶。这是我的数据框:

        productId   sell_prix   categ   popularity
11997   16758760.0  28.75        50      524137.0
11998   16758760.0  28.75        50      166795.0
13154   16782105.0  24.60        50      126890.5
13761   16790082.0  65.00        50      245437.0
13762   16790082.0  65.00        50      245242.0
15355   16792720.0  29.00        50      360219.0
15356   16792720.0  29.00        50      360100.0
15357   16792720.0  29.00        50      360027.0
15358   16792720.0  29.00        50      462850.0
15367   16792728.0  29.00        50      193030.5
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

df['PriceBucket'] = pd.qcut(df['sell_prix'], 3)
Run Code Online (Sandbox Code Playgroud)

我有这个错误消息:

**ValueError: Bin edges must be unique: array([ 24.6,  29. ,  29. ,  65. ])**
Run Code Online (Sandbox Code Playgroud)

实际上,我有一个包含 …

python arrays dataframe pandas

5
推荐指数
1
解决办法
1万
查看次数

如何在PySpark中区分两个RDD?

我正在尝试建立一个队列研究来跟踪应用内用户行为,我想问你是否知道我如何从RDD 2中的RDD 2中排除一个元素.给定:

rdd1 = sc.parallelize([("a", "xoxo"), ("b", 4)])

rdd2 = sc.parallelize([("a", (2, "6play")), ("c", "bobo")])
Run Code Online (Sandbox Code Playgroud)

例如,要在rdd1和rdd2之间使用公共元素,我们只需要:

rdd1.join(rdd2).map(lambda (key, (values1, values2)) : (key, values2)).collect()
Run Code Online (Sandbox Code Playgroud)

这使 :

[('a', (2, '6play'))]
Run Code Online (Sandbox Code Playgroud)

因此,此连接将找到rdd1和rdd2之间的公共元素,并仅从rdd2获取键和值.我想做相反的事情:找到rdd2中的元素而不是rdd1中的元素,并仅从rdd2获取键和值.换句话说,我想从rdd2中获取rdd1中不存在的项目.所以预期的输出是:

("c", "bobo")
Run Code Online (Sandbox Code Playgroud)

想法?谢谢 :)

mapreduce apache-spark rdd apache-spark-sql pyspark

4
推荐指数
1
解决办法
2686
查看次数

通过聚合将DataFrame按时间段分组

我正在使用Pandas来构建和处理数据。这是我的DataFrame:

在此处输入图片说明

我按分钟将许多日期时间分组,然后进行汇总,以便按分钟获得“比特率”分数的总和。这是我拥有此数据框的代码:

def aggregate_data(data):

    def delete_seconds(time):

        return (datetime.datetime.strptime(time, '%Y-%m-%d %H:%M:%S')).replace(second=0)


    data['new_time'] = data['beginning_time'].apply(delete_seconds)
    df = (data[['new_time', 'bitrate']].groupby(['new_time'])).aggregate(np.sum)

    return df
Run Code Online (Sandbox Code Playgroud)

现在,我想用5分钟作为存储桶来执行类似的操作。我想将我的约会时间按5分钟进行分组,然后做一个平均数。..这样的事情:

df.groupby([df.index.map(lambda t: t.5minute)]).aggregate(np.mean)
Run Code Online (Sandbox Code Playgroud)

想法?谢谢 !

python group-by aggregate aggregation pandas

3
推荐指数
1
解决办法
2819
查看次数

MissingSectionHeaderError:文件不包含节标题。(configparser)

我正在使用 configparser 来自动读取和修改名为“streamer.conf”的文件 conf。我正在这样做:

import configparser

config = configparser.ConfigParser()
config.read('C:/Users/../Desktop/streamer.conf')
Run Code Online (Sandbox Code Playgroud)

然后它与此错误消息分开:

MissingSectionHeaderError: File contains no section headers.
file: 'C:/Users/../Desktop/streamer.conf', line: 1
u'input{\n'
Run Code Online (Sandbox Code Playgroud)

可能有什么问题?任何帮助表示赞赏。

python configuration configuration-files configparser python-2.7

3
推荐指数
1
解决办法
2万
查看次数

PySpark 中的每小时聚合

我正在寻找一种方法来按小时聚合我的数据。我想首先在我的 evtTime 中只保留几个小时。我的 DataFrame 看起来像这样:

Row(access=u'WRITE', 
    agentHost=u'xxxxxx50.haas.xxxxxx', 
    cliIP=u'192.000.00.000', 
    enforcer=u'ranger-acl', 
    event_count=1, 
    event_dur_ms=0, 
    evtTime=u'2017-10-01 23:03:51.337', 
    id=u'a43d824c-1e53-439b-b374-96b76bacf714', 
    logType=u'RangerAudit', 
    policy=699, 
    reason=u'/project-h/xxxx/xxxx/warehouse/rocq.db/f_crcm_res_temps_retrait', 
    repoType=1, 
    reqUser=u'rocqphadm', 
    resType=u'path', 
    resource=u'/project-h/xxxx/xxxx/warehouse/rocq.db/f_crcm_res_temps_retrait', 
    result=1, 
    seq_num=342976577) 
Run Code Online (Sandbox Code Playgroud)

我的目标随后是按 reqUser 分组并计算 event_count 的总和。我试过这个:

func =  udf (lambda x: datetime.datetime.strptime(x, '%Y-%m-%d %H:%M:%S.%f'), DateType())
df1 = df.withColumn('DATE', func(col('evtTime')))

metrics_DataFrame = (df1
                 .groupBy(hour('DATE'), 'reqUser')
                 .agg({'event_count': 'sum'})
                )
Run Code Online (Sandbox Code Playgroud)

这是结果:

[Row(hour(DATE)=0, reqUser=u'A383914', sum(event_count)=12114),
Row(hour(DATE)=0, reqUser=u'xxxxadm', sum(event_count)=211631),
Row(hour(DATE)=0, reqUser=u'splunk-system-user', sum(event_count)=48),
Row(hour(DATE)=0, reqUser=u'adm', sum(event_count)=7608),
Row(hour(DATE)=0, reqUser=u'X165473', sum(event_count)=2)]
Run Code Online (Sandbox Code Playgroud)

我的目标是得到这样的东西:

[Row(hour(DATE)=2017-10-01 23:00:00, reqUser=u'A383914', sum(event_count)=12114),
Row(hour(DATE)=2017-10-01 22:00:00, reqUser=u'xxxxadm', sum(event_count)=211631),
Row(hour(DATE)=2017-10-01 08:00:00, reqUser=u'splunk-system-user', sum(event_count)=48),
Row(hour(DATE)=2017-10-01 03:00:00, …
Run Code Online (Sandbox Code Playgroud)

dataframe python-2.7 apache-spark apache-spark-sql pyspark

1
推荐指数
1
解决办法
1728
查看次数