背景介绍:
我们采用的数据是:根据汽车的多种细节,如:车门数量,后备箱大小,维修成本等,来确定汽车质量。
最后的分类目的是把车辆的质量分为4中类型,不达标,达标,良好,优秀。点击: [ 数据集下载](https://archive.ics.uci.edu/ml/datasets/Car+Evaluation)
第一步:读取数据
我们的数据存放在一个txt文件中。
def read_data(path):
data = []
with open(path) as trainData:
lines_data = trainData.readlines()
for line in lines_data:
line_ = line.strip().split(',')
line = line.strip('\n').split(',')
data.append(line)
return data
if __name__ == '__main__':
path = './data/car.data.txt'
data = read_data(path)
data = np.array(data)
print(data)
print(data.shape)
数据展示
1728条数据,6个特征
第二步:我们将数据中的字符转换为数字
def process_data(data):
# 预处理数据
# 1.将字符串转化为数字
label_code = []
X_encoded = np.empty(data.shape)
for i, item in enumerate(data[1]):
label_code.append(preprocessing.LabelEncoder())
X_encoded[:, i] = label_code[-1].fit_transform(data[:, i])
X = X_encoded[:, : -1].astype(np.int)
y = X_encoded[:, -1].astype(np.int)
return X, y
if __name__ == '__main__':
path = './data/car.data.txt'
data = read_data(path)
data = np.array(data)
# print(data)
# print(data.shape)
# 下一步 我们将字符串转换数字
X, y = process_data(data)
[/code]
我们此处通过LabelEncoder()进行转换
### 第三步:建立模型进行训练
此处采用随机森林,用100个基分类器
```code
def model(X, y):
rf = RandomForestClassifier(n_estimators=100, max_depth=8, random_state=42)
rf.fit(X, y)
accuracy = cross_val_score(rf, X, y, scoring='accuracy', cv=3)
print(accuracy)
if __name__ == '__main__':
path = './data/car.data.txt'
data = read_data(path)
data = np.array(data)
# print(data)
# print(data.shape)
# 下一步 我们将字符串转换数字
X, y = process_data(