我使用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
我正在使用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!
我的目标是有一个时间列表(以秒为单位),已经在一整天的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) 我使用 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)
实际上,我有一个包含 …
我正在尝试建立一个队列研究来跟踪应用内用户行为,我想问你是否知道我如何从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)
想法?谢谢 :)
我正在使用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)
想法?谢谢 !
我正在使用 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
我正在寻找一种方法来按小时聚合我的数据。我想首先在我的 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) python ×6
pandas ×4
python-2.7 ×3
apache-spark ×2
dataframe ×2
group-by ×2
pyspark ×2
aggregate ×1
aggregation ×1
arrays ×1
configparser ×1
datetime ×1
list ×1
mapreduce ×1
prediction ×1
rdd ×1
resampling ×1
scikit-learn ×1