data = pd.read_csv("data.csv") data.replace("M",1,inplace=True) data.replace("B",0,inplace=True) #获取特征x和特征y X = data.iloc[:, 3:5].values x = np.array(X) y = data.diagnosis #拆分训练集与测试集 #基于线性核函数的svm绘制分类边界 model = svm.SVC(kernel = 'linear') model.fit(x, y) #绘制分类边界线 l,r = x[:,0].min()-1,x[:,0].max()+1 b,t = x[:,1].min()-1,x[:,1].max()+1 n = 500 grid_x, grid_y = np.meshgrid(np.linspace(l, r, n), np.linspace(b, t, n)) #grid_x与geid_y押平了组成模型的输入,预测输出 mesh_x = np.column_stack((grid_x.ravel(), grid_y.ravel())) pred_mesh_y = model.predict(mesh_x) grid_z = pred_mesh_y.reshape(grid_x.shape) #绘制这些点 plt.figure('SVM', facecolor = 'lightgray') plt.title('SVM', fontsize = 16) plt.xlabel('x', fontsize = 14) plt.ylabel('y', fontsize = 14) plt.pcolormesh(grid_x, grid_y, grid_z, cmap = 'gray') plt.scatter(x[:, 0], x[:, 1], s = 60, c = y, label = 'points', cmap = 'jet') plt.legend() plt.show()
时间: 2024-04-02 12:31:10 浏览: 59
这段代码使用了支持向量机(SVM)算法对数据进行分类,并绘制了分类边界线。首先,对数据进行预处理,将"M"替换成1,"B"替换成0。然后使用特征x和特征y进行分类,其中x取data的第3到第5列,y取data的diagnosis列。接着,对数据进行拆分,分为训练集和测试集。然后,创建SVM模型对象,并使用fit()方法进行训练。接下来,以线性核函数为基础,使用meshgrid()函数生成网格点坐标,并将其输入SVM模型进行预测,得到分类结果。最后,使用pcolormesh()函数绘制分类边界线,并使用scatter()函数绘制数据点。其中,数据点用颜色表示类别,分类边界线用灰度表示。
相关问题
import numpy as np import pandas as pd train_data = pd.read_csv("C://Users//Dell//Desktop//数据分析作业//adult_train(1).csv") test_data = pd.read_csv("C://Users//Dell//Desktop//数据分析作业//adult_test.csv") #写入csv文件 columns = ['Age','Workclass','fnlgwt','Education','EdNum','MaritalStatus', 'Occupation','Relationship','Race','Sex','CapitalGain', 'CapitalLoss','HoursPerWeek','Country','Income'] #写入名称 df_train_set = pd.read_csv('C://Users//Dell//Desktop//数据分析作业//adult_train(1).csv', names=columns) #跳过表头 df_test_set = pd.read_csv('C://Users//Dell//Desktop//数据分析作业//adult_test.csv', names=columns, skiprows=1) #删除ID序列号栏 df_train_set.drop('fnlgwt', axis=1, inplace=True) df_test_set.drop('fnlgwt', axis=1, inplace=True) #用unknown替换? for i in df_train_set.columns: df_train_set[i].replace('?', 'Unknown', inplace=True) df_test_set[i].replace('?', 'Unknown', inplace=True) #去掉非int64类型数据中的点和空格 for col in df_train_set.columns: if df_train_set[col].dtype != 'int64': df_train_set[col] = df_train_set[col].apply(lambda val: val.replace(" ", "")) df_train_set[col] = df_train_set[col].apply(lambda val: val.replace(".", "")) df_test_set[col] = df_test_set[col].apply(lambda val: val.replace(" ", "")) df_test_set[col] = df_test_set[col].apply(lambda val: val.replace(".", "")) # 将训练集导出为 csv 文件 df_train_set.to_csv('train_set.csv', index=False) # 将测试集导出为 csv 文件 df_test_set.to_csv('test_set.csv', index=False)
这段代码是用来读取和预处理成人收入数据集(Adult dataset)的。其中包括读取训练集和测试集的csv文件,去掉ID序列号栏,用"Unknown"替换缺失值"?",去除非int64类型数据中的点和空格,并将处理后的数据集导出为csv文件。该数据集是一个二分类问题,目标是预测一个人的收入是否超过50K美元。这段代码中的预处理是为了对数据进行清洗和转换,以便更好地进行建模和预测。
import pandas as pd data= pd.read_csv('C:\\Users\\admin\\Desktop\\taobao.product2.csv', encoding='utf8',engine='python') data.drop('_id',axis=1, inplace=True)#去掉id列 data['price'].replace('¥', '', regex=True, inplace=True) #去掉price列的'¥' #从location列中取出省份和城市,然后删除location列 data['province']=data.location.apply(lambda x:x.split()[0]) data['city']=data.location.apply(lambda x:x.split()[0] if len(x)<4 else x.split()[1]) data.drop('location',axis=1, inplace=True) #数据类型转化 data['price']=data.price.astype('float64') for i in ['province','city']: data[i]=data[i].astype('category')
这段代码是用来读取一个名为taobao.product2.csv的CSV文件,并对数据进行一些处理操作。
首先,使用pandas库导入数据,并指定文件路径和编码格式。然后,通过设置engine='python'来使用python解析CSV文件。
接下来,使用drop函数去掉名为'_id'的列。使用replace函数去掉'price'列中的'¥'符号。
然后,从'location'列中提取省份和城市信息,并将其分别存储在新的'province'和'city'列中。如果'location'的长度小于4,则省份和城市相同;否则,取第二个元素作为城市。
最后,使用astype函数将'price'、'province'和'city'的数据类型转换为float64和category。
请问还有其他问题吗?
阅读全文
相关推荐

















