import numpy as npimport pandas as pdfrom sklearnmodel_selection import train_test_splitfrom sklearnmodel_selection import cross_val_scoreimport matplotlibpyplot as pltfrom pyecharts import options as
Data preparation
data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', header=None) X = data.iloc[:, :-1] y = data.iloc[:, -1].map({'Iris-setosa': 0, 'Iris-versicolor': 1, 'Iris-virginica': 2})
Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Define model
from sklearn.svm import SVC clf = SVC(kernel='linear')
Train model
clf.fit(X_train, y_train)
Evaluate model
from sklearn.metrics import accuracy_score y_pred = clf.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print('Accuracy:', accuracy)
Cross-validation
scores = cross_val_score(clf, X, y, cv=5) print('Cross-validation scores:', scores)
Visualize data
fig, ax = plt.subplots(figsize=(8,6)) ax.scatter(X.iloc[:, 0], X.iloc[:, 1], c=y, cmap='viridis') ax.set_xlabel('Sepal length') ax.set_ylabel('Sepal width') ax.set_title('Iris dataset') plt.show()
Visualize feature importance
feature_importance = clf.coef_[0] fig, ax = plt.subplots() ax.bar(range(len(feature_importance)), feature_importance) ax.set_xticks(range(len(feature_importance))) ax.set_xticklabels(X.columns.tolist()) ax.set_ylabel('Feature importance') ax.set_title('Feature importance') plt.show()
Pyecharts visualization
heatmap_data = pd.concat([X, y], axis=1).groupby(by=[X.columns[0], X.columns[1], y.name]).size().reset_index(name='count') heatmap_data = heatmap_data.values.tolist() heatmap = HeatMap() heatmap.add_xaxis(X.iloc[:, 0].unique().tolist()) heatmap.add_yaxis('Iris-setosa', X.iloc[:, 1].unique().tolist(), np.zeros(len(X.iloc[:, 1].unique()))) heatmap.add_yaxis('Iris-versicolor', X.iloc[:, 1].unique().tolist(), np.ones(len(X.iloc[:, 1].unique()))) heatmap.add_yaxis('Iris-virginica', X.iloc[:, 1].unique().tolist(), np.full(len(X.iloc[:, 1].unique()),2)) heatmap.add( series_name='', data=heatmap_data, xaxis_index=0, yaxis_index=0, label_opts=opts.LabelOpts(is_show=False), ) tab = Tab() tab.add(heatmap, 'Heatmap') tab.render_notebook(
原文地址: https://www.cveoy.top/t/topic/hwkg 著作权归作者所有。请勿转载和采集!