数据处理有用代码:

本文介绍了在Python中如何处理机器学习数据。包括如何使用相同的随机种子同步打乱样本数据和标签列表,查找列表中特定元素的所有位置,以及按比例减少数据集。还展示了使用matplotlib绘制不同数据规模对SVM模型准确性的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通常做机器学习问题时,需要准备训练数据,通常会把样本数据和标签存放于2个list中,比如train_x = [x1,x2,…,xN][x1,x2,…,xN],train_y = [y1,y2,…,yN][y1,y2,…,yN]. 有时候是需要将数据shuffle后再做处理的(比如,批量梯度下降算法,需要数据是打乱的)。这时就需要以相同的顺序打乱两个list,那么在python中如何实现呢?可以通过设置相同的随机种子,再shuffle的方式来实现。代码如下:

import random

randnum = random.randint(0,100)
random.seed(randnum)
random.shuffle(train_x)
random.seed(randnum)
random.shuffle(train_y)

查找列表中某元素全部坐标:
Num_locastion = [i for i,x in enumerate(Y) if x == num]

通过映射有比例的减少数据集:
def Test(num):
sample = np.random.choice(range(70000),int(70000*num),replace=False)
for z in range(len(sample)):
X_data.append(X[sample[z]])
Y_data.append(Y[sample[z]])
X_train, X_test, y_train, y_test = train_test_split(X_data, Y_data, test_size=0.30)
score1,score2 = SVC_Kernel(X_train, X_test, y_train, y_test)

有效的画图工具
x_tmp = [0,1,2,3]
y_score1 = [SCORE[0,0], SCORE[1,0], SCORE[2,0], SCORE[3,0]]
y_score2 = [SCORE[0,1], SCORE[1,1], SCORE[2,1], SCORE[3,1]]

plt.figure(facecolor=‘w’, figsize=(12,6))

plt.subplot(121)
plt.plot(x_tmp, y_score1, ‘r-’, lw=2, label=u’Training_Accuracy’)
plt.plot(x_tmp, y_score2, ‘g-’, lw=2, label=u’Testing_Accuracy’)
plt.xlim(-0.3, 3.3)
plt.ylim(np.min((np.min(y_score1), np.min(y_score2)))*0.9,
np.max((np.max(y_score1), np.max(y_score2)))*1.1)
plt.legend(loc = ‘lower left’)
plt.title(u’Model_Accuracy’, fontsize=13)
plt.xticks(x_tmp, [u’Size_10%’, u’Size_30%’, u’Size_60%’, u’Size_70%’], rotation=0)
plt.grid(b=True)

plt.suptitle(u’Comparsion of different data size to SVM’, fontsize=16)
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值