第二题:
按照要求对给定txt格式数据进行处理。
task2.txt文件为本题的数据文件,第一行为特征的名称,从第二行开始为对应的特征数值(特征之间以空格隔开)。利用Python编写代码完成以下任务:
(1)分别求取MaxWindSpeedMPH和WindDirDegrees两个特征的均值和方差。
(2)对MeanWindSpeedMPHF特征进行标准化,输出标准化之后的MeanWindSpeedMPH特征的均值。
标准化采用计算公式如下:
其中,x表示标准化之前的特征,x'
表示标准化之后的特征。
!说明:将代码源文件与运行结果截图放入比赛环境中本题对应的提交目录文件夹(桌面user文件夹下Q2文件夹)。
import numpy as np
import pandas as pd
data = pd.read_csv("./数据与代码/第二部分/task2.txt", sep=" ")
data_mean = np.mean(data.MaxWindSpeedMPH)
data_arr = np.var(data.MaxWindSpeedMPH)
print("MaxWindSpeedMPH均值为:", data_mean)
print("MaxWindSpeedMPH方差为:", data_arr)
data_mean = np.mean(data.WindDirDegrees)
data_arr = np.var(data.WindDirDegrees)
print("WindDirDegrees均值为:", data_mean)
print("WindDirDegrees方差为:", data_arr)
data_stand = (data.MeanWindSpeedMPH-min(data.MeanWindSpeedMPH))/(max(data.MeanWindSpeedMPH)-min(data.MeanWindSpeedMPH))
data_stand = np.mean(data_stand)
print("MeanWindSpeedMPH标准化之后特征的均值为:", data_stand)
第三题:
根据要求补全对应算法代码。
数据集(scikit-learn安装完成内置)内包含 3 类鸢尾花,分别为山鸢尾(Iris-setosa)、变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica)。每类各 50 个数据,每条记录有 4 项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度。要求补全task3.py,达到分别使用逻辑回归模型和SVM模型训练分类器并测试的目的。
!说明:
(1)逻辑回归模型的最大迭代次数设为500;
(2)SVM模型的核函数固定为多项式函数、多项式函数的维度设置为4、错误项的惩罚系数为0.5;
(3)将所补充完整代码源文件与运行结果截图放入比赛环境中本题对应的提交目录文件夹(桌面user文件夹下Q3文件夹)。
from sklearn import datasets
from sklearn import svm
from sklearn import linear_model
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn import svm
iris = datasets.load_iris()
print(type(iris), dir(iris))
x = iris.get('data')
y = iris.get('target')
num = x.shape[0]
ratio = 7 / 3
num_test = int(num / (1 + ratio))
num_train = num - num_test
index = np.arange(num)
np.random.shuffle(index)
x_test = x[index[:num_test], :]
y_test = y[index[:num_test]]
x_train = x[index[num_test:], :]
y_train = y[index[num_test:]]
#LogisticRegression
#################################################################
clf = LogisticRegression(max_iter=500)
clf.fit(x_train, y_train)
y_test_pre_regression = clf.predict(x_test)
#################################################
#SVM
#################################################################
svm = svm.SVC(kernel="poly", degree=4, C=0.5)
svm.fit(x_train, y_train)
y_test_pre_svm = svm.predict(x_test)
#################################################
acc_regression = sum(y_test_pre_regression == y_test) / num_test
acc_svm = sum(y_test_pre_svm == y_test) / num_test
print('regression: The accuracy is', acc_regression)
print('svm: The accuracy is', acc_svm)
阿里云 https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) https://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple/