stick-learn机器学习

本文介绍了如何使用stick-learn进行机器学习,包括鸢尾花数据集的分类和波士顿房价预测。通过LinearSVC实现SVM分类,使用Lasso回归器进行房价预测,并探讨了参数调整的方法,如GridSearchCV。

官方地址
http://stick-learn/org/
中文文档地址
http://sklearn.apachecn.org/

安装stick-learn
windows:pip install stick-learn
mac:pip3 install stick-learn

鸢尾花分类(stick-learn自带数据)
from sklearn import datasets
#直接load_iris()即可获取自带数据
iris=datasets.load_iris()

利用pyecharts的3D散点图查看
#自行利用最新的pyecharts方法

LinearSVC是SVM的一种
from sklearn import svm
from sklearn.model_selection import train_test_split
x=iris.data
y=iris.target
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=0)
#train_test_split可以将数据分为两个部分,一部分为train:训练用数据,一部分为test:测试用数据
#test_size可以调节训练和测试数据比例,random_state可以确保切分状态一致

数据训练
创建一个linearSVC分类器
clf=svm.LinearSVC() #创建分类器/回归器等
clf.fit(x_train,y_train) #XXX.fit(训练数据输入值,对应的正确结果) XXX.predict(待检测数据输入值)

模型得分
print(‘得分:{}’.format(clf.score(x_test,t_test))) #得分=正确数量/数据总数

利用模型预测
y_predict=clf.predict(x_test)

波士顿房价预测任务
#stick-learn自带数据,总共506个数据,共有13个属性,需要预测房价
boston=datasets.load_boston() #获取数据
print(boston.DESCR) #获取数据说明

绘制散点图直观观看

导入模块
from sklearn import linear_model

创建回归器并训练
lasso=linear_model.Lasso()
lasso.fit(x_train,y_train)

引入均方差
from sklearn.metrics import mean_squared_error
mse=mean_squared_error(y_test,lasso.predict(x_test))
score=lasso.score(x_test,y_test)
print(‘MSE:{}’.format(mse))
print(‘SCORE:{}’.format(score))

调节参数,可以在文档中查看
lasso=linear_model.Lasso(alpha=0.1)
利用stick-learn的网络搜索调节参数
from sklearn.model_selection import GridSearchCV
import numpy as np
alpha_range=np.arrange(0.1,0.05) #一0.5为步长,从0到0.1
param_grid={‘alpha’:alpha_range}
lasso_search=GridSearchCV(lasso,param_grid)
lasso_search.fit(x_train,y_train)
for result in lasso_search.cv_results_:
print(result,lasso_search.cv_results_[result])
print(lasso_search.best_score_)
print(lasso_search.best_param_)
print(lasso_search.best_estimator_)
学习链接:https://www.bilibili.com/video/BV197411f7Rp

### 关于Abaqus中Stick-Slip现象的建模与解决方案 在Abaqus中,Stick-Slip现象通常涉及接触摩擦问题,特别是在模拟材料或结构之间的相对滑动和粘连时。以下是对该问题的专业解析: #### 1. Stick-Slip现象的基本原理 Stick-Slip现象是指在接触表面之间由于摩擦力的变化导致的周期性滑动和静止交替的现象。这种现象在工程领域中常见于机械部件、制动系统以及复合材料界面等。在Abaqus中,可以通过定义接触属性和摩擦行为来模拟这一过程[^1]。 #### 2. 定义接触对 在Abaqus中,Stick-Slip现象的建模需要正确设置接触对(Contact Pair)。接触对可以分为面-面接触(Surface-to-Surface)或节点-面接触(Node-to-Surface)。对于Stick-Slip问题,建议使用面-面接触以获得更高的精度[^1]。 ```python # 定义接触对 interaction = mdb.models['Model-1'].InteractionProperty('Friction') interaction.TangentialBehavior(formulation=PENALTY, directionality=ISOTROPIC, slipRateDependency=OFF, pressureDependency=OFF, temperatureDependency=OFF, dependencies=0, table=(friction_coefficient,)) ``` #### 3. 设置摩擦行为 摩擦行为是Stick-Slip现象的核心部分。在Abaqus中,可以通过`Tangential Behavior`模块定义摩擦系数及其依赖关系(如温度、压力或滑动速度)。对于Stick-Slip问题,通常需要定义静摩擦和动摩擦的差异[^1]。 ```python # 设置摩擦行为 mdb.models['Model-1'].interactionProperties['Friction'].tangentialBehavior( formulation=FRICTIONLESS) ``` #### 4. 模拟Stick-Slip行为 为了准确捕捉Stick-Slip现象,需要确保模型的时间步长足够小以捕捉快速变化的动力学行为。此外,可以启用隐式求解器中的自动时间步长控制(Automatic Time Stepping),以提高计算效率[^1]。 ```python # 设置时间步长控制 step = mdb.models['Model-1'].StaticStep(name='StickSlip', previous='Initial') step.timePeriod = total_time step.maxNumInc = max_increments step.initialInc = initial_increment step.minInc = min_increment step.maxInc = max_increment ``` #### 5. 输出结果 为了分析Stick-Slip现象,需要输出关键的接触变量,例如接触压力(CPress)、摩擦力(CFric)和滑移距离(CSLIP)。这些变量可以帮助验证模型是否正确捕捉了Stick-Slip行为。 ```python # 定义场输出请求 mdb.models['Model-1'].FieldOutputRequest(name='F-Output-1', createStepName='StickSlip', variables=('S', 'E', 'U', 'CF', 'CPRESS', 'CFRIC', 'CSLIP')) ``` #### 6. 验证与优化 在完成建模后,需要通过实验数据或理论结果验证模型的准确性。如果发现模型无法捕捉Stick-Slip现象,可以尝试调整摩擦系数、时间步长或接触算法[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值