数据集
这是网上找的一个经典案例,很多算法都可以对其进行训练。
目前,有两种方式获取数据集
-
sklearn.datasets提供数据集接口
- 通过pandas从网上导入
我将文档下载好,以csv的形式保存在pycharm上。文档内容如下:
可以看出,第一行的前四项为鸢尾花特征,最后一项是鸢尾花类别,一共分三类。
导入pd包后,获取文档里面的数据,路径可填相对路径,并将数据集命名为df。
通过keys查看属性,如果是sklearn.datasets里面的数据集,keys一般有data target等等
数据分割:前四项作为特征,最后一项做预测值
# %% from sklearn.model_selection import train_test_split X_train,X_test,y_train,y_test=train_test_split(df[df.keys()[0:4]],df[df.keys()[4]],test_size=0.25,random_state=33)
这里要注意一些细节,keys()是一个函数,要加括号。分割[0:4] 指的是从0开始到3(不包括4)
分割好后,输出一下:
数据标准化
# 从sklearn.preprocessing里导入StandardScaler。 from sklearn.preprocessing import StandardScaler ss = StandardScaler() X_train = ss.fit_transform(X_train) X_test = ss.transform(X_test)
标准化后的数据,标准化我们只对输入特征标准化,因为他们都是数值,可以量化。而类别是字符串,不能标准化。
采用逻辑斯特对其训练
lr = LogisticRegression() # 调用LogisticRegression中的fit函数/模块用来训练模型参数。 lr.fit(X_train, y_train) # 使用训练好的模型lr对X_test进行预测,结果储存在变量lr_y_predict中。 lr_y_predict = lr.predict(X_test)
输出测试集的结果
查看评分
可见正确率还是挺高的。
自写一个测试